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