主要Ruby VM有哪些优点/缺点(比如功能,兼容性,性能和怪癖?)我知道还有一些额外的功能,比如能够通过JRuby使用Java接口.这些也有助于注意.在这一点上,任何VM都有明显的优势吗?在什么情况下?
我已经使用了Matz的Ruby和JRuby,他们解决了不同的任务.如果你正在开发一个直接的Ruby或Rails应用程序,那么这可能就足够了,但如果有一些强大的Java库可以提供很多帮助,那么JRuby可能是值得的.
我没有做过任何过于复杂的事情,但JRuby似乎相当匹配,至少就实现核心语言功能而言(我还没有遇到任何差异,但它们可能存在).
我想分享的一个小轶事......我正在编写一个与DB2数据库交互的脚本.Ruby中的DB2支持很糟糕......你必须安装整个DB2 express版本才能编译Ruby驱动程序,这对我来说根本不起作用.我厌倦了并使用JDBC和一些小型DB2 JDBC jar切换到JRuby.它完美地解决了我的问题.关键点?好吧,如果获得访问某些Java库将简化手头的问题,一定要去吧!
我希望这可以帮到你!对不起,我对其他虚拟机没有任何经验....
还有一点需要注意,但是我不太了解细节...... JRuby我认为支持通过Java线程进行线程化,而不是Matz实现中支持的"绿色"线程...所以如果你想要多线程处理多核系统,JRuby可能会更好地为您服务......除非您想在C中进行线程化.
以下是我在主要虚拟机上获得的一些信息:Ruby MRI,Ruby 1.9(YARV),JRuby,XRuby,Rubinius和IronRuby
去年有一个性能基准测试对比了主要虚拟机,但是VM开发的速度有多快,它今天可能并不那么重要.Ruby 1.9通常是最快的,现在仍然优于JRuby,我相信.
目前有四个虚拟机可以运行Ruby on Rails:Ruby MRI,Ruby 1.9,JRuby和Rubinius.
XRuby和JRuby一样在JVM上运行,并将Ruby源文件编译为Java .class.
IronRuby在.NET上运行,利用他们的DLR,并允许您将Ruby与.NET库和基础架构集成.它还不能运行Ruby on Rails.
还有一个名为HotRuby的VM ,它允许您在浏览器或Flash中运行Ruby源代码.