这是一个高层次的概念性问题。我有两个独立的代码库,用于相同的目的,一个是用Python构建的,另一个是用Ruby构建的。我需要开发一些能在JVM上运行的东西。所以我有两个选择:将Python代码转换为Jython或将Ruby转换为JRuby。由于我不知道它们中的任何一个,我想知道是否有人可以给我一些指导。比如哪一个运行更快,或者更重要的是哪一个有可用于易于代码迁移的工具(.pyc到.jar文件)?
在这两种情况下,大部分代码应该都能够正常工作。如果你要从零开始学习其中任何一种语言,我不知道有什么真正强有力的理由选择Jython而非JRuby或反之。Python非常注重可读性和避免使用“魔法”,但是Ruby倾向于给你更多的自由去做一些花哨的事情,例如定义你自己的DSL。主要区别在于社区,这主要与上述不同的重点有关。
在任何情况下,兼容性都是在源代码级别进行的;如果Python或Ruby代码调用涉及本地代码的包(特别是,Jython中没有标准Python包,如ctypes),则需要进行必要的更改。
性能可能是决定因素:在这个基准测试中(像所有基准测试一样,应该带着一点保留地看待),JRuby的运行速度比本地Ruby要快一些,而Jython的性能则被CPython超过了3倍。
你可以在任何一种语言中实现另一种语言的功能。
学习足够多的两种语言,以确定哪一种更符合你的编程感觉。这里没有对或错的答案。