这是一个高层次的概念问题。我有两个用于相同目的的独立代码库,一个内置于 Python,另一个内置于 Ruby。我需要开发一些可以在 JVM 上运行的东西。所以我有两个选择:将 Python 代码转换为 Jython 或将 Ruby 转换为 JRuby。由于我不认识他们中的任何一个,我想知道是否有人可以给我一些指导。喜欢哪一个运行得更快,或者更重要的是哪一个具有可用于轻松代码迁移的工具(.pyc 到 .jar 文件)?
5 回答
在这两种情况下,大部分代码都应该是 Just Work™。如果您将从头开始学习,我不知道选择 Jython 而不是 JRuby 的真正令人信服的理由,反之亦然。Python 非常强调可读性而不是使用“魔法”,但是 Ruby 往往会给你更多的绳索来做一些花哨的事情,例如,定义你自己的 DSL。主要区别在于社区,主要围绕上述不同的焦点。
如果您打算在任一平台上投入时间和精力,您应该检查这两个平台上的开发活跃程度。订阅邮件列表和新闻组以了解社区,检查两个项目的源代码控制系统并了解开发的活跃程度。
我对 Python 比对 Ruby 更熟悉。Jython 项目在经历了一段缓慢的发展之后,确实有了起色,6 月份发布了兼容 Python 2.5 的版本。这是向前迈出的重要一步,因为 Python 2.5 引入了一些非常有用的语言增强功能: http: //docs.python.org/whatsnew/2.5.html
性能可能是决定性因素:在这个基准测试中(与所有基准测试一样,应该谨慎使用),JRuby 的运行速度比原生 Ruby 快,而 Jython 的性能比 CPython 高出 3 倍。
你可以在一个中做的任何事情,你都可以在另一个中做。
充分了解这两种知识,以了解哪一种更能激发您的编码敏感性。这里没有正确或错误的答案。
两种情况下的兼容性都在源代码级别;在 Python 或 Ruby 代码调用涉及本机代码的包时进行必要的更改(尤其是标准 Python 包,如 ctypes 在 Jython 中不存在)。