Jython还是JRuby?

4

这是一个高层次的概念性问题。我有两个独立的代码库,用于相同的目的,一个是用Python构建的,另一个是用Ruby构建的。我需要开发一些能在JVM上运行的东西。所以我有两个选择:将Python代码转换为Jython或将Ruby转换为JRuby。由于我不知道它们中的任何一个,我想知道是否有人可以给我一些指导。比如哪一个运行更快,或者更重要的是哪一个有可用于易于代码迁移的工具(.pyc到.jar文件)?

5个回答

5

在这两种情况下,大部分代码应该都能够正常工作。如果你要从零开始学习其中任何一种语言,我不知道有什么真正强有力的理由选择Jython而非JRuby或反之。Python非常注重可读性和避免使用“魔法”,但是Ruby倾向于给你更多的自由去做一些花哨的事情,例如定义你自己的DSL。主要区别在于社区,这主要与上述不同的重点有关。


你也可以在Python中定义自己的DSL吗?http://code.activestate.com/recipes/534150-ruby-style-dsls-in-python-25/ - Alexander

2
如果您打算投入时间和精力到这两个平台中的任何一个,那么您应该检查这两个平台的开发活动情况。订阅邮件列表和新闻组以了解社区情况,检查两个项目的源代码控制系统,并了解开发活动的程度。
我比较熟悉Python而不是Ruby。经过一段缓慢的发展后,Jython项目真正开始加速发展,于6月发布了一个兼容Python 2.5的版本。这是一个重大的进步,因为Python 2.5引入了一些非常有用的语言增强功能:http://docs.python.org/whatsnew/2.5.html

1

在任何情况下,兼容性都是在源代码级别进行的;如果Python或Ruby代码调用涉及本地代码的包(特别是,Jython中没有标准Python包,如ctypes),则需要进行必要的更改。


1

性能可能是决定因素:在这个基准测试中(像所有基准测试一样,应该带着一点保留地看待),JRuby的运行速度比本地Ruby要快一些,而Jython的性能则被CPython超过了3倍。


2
那种比较毫无意义。更有意义的是在JRuby和Jython之间进行比较。根据Great Language Shootout和您提供的数字推断,Jython和JRuby应该非常具有竞争力。 - Hank Gay
2
我引用的基准测试数据表明,JRuby的性能比Jython高8倍。 - Michael Borgwardt
你的回答中应该包含比较。在 shootout 参考和之前的所有内容之间应该有一个段落分隔。我提到它是因为我认为它提供了比单个基准测试更多的信息,但它并没有提供 Jython 的数字。不幸的是,我不知道最新的 Jython 发布有任何好的基准测试。 - Hank Gay

1

你可以在任何一种语言中实现另一种语言的功能。

学习足够多的两种语言,以确定哪一种更符合你的编程感觉。这里没有对或错的答案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接