我没有使用JRuby而非MRI / YARV的原因是什么?

时间:2010-10-13 23:35:35

标签: ruby jruby

Is there an advantage to running JRuby if you don't know any Java?中,如果您只想要比“Ruby”(MRI / YARV)更好地实现Ruby,那么人们建议使用JRuby。

不使用JRuby会有什么潜在的原因?

其他人提到的是:

  1. 短节目的表现。对于较长的程序,JRuby被描述为更快,但具有更长的初始化时间。讨论了变通方法in this question
  2. C扩展:JRuby支持一些与MRI / YARV一起使用的but not all,C扩展。
  3. 并发作为一把双刃剑。人们没有发现的There's non-thread-safe code out there因为最流行的实现没有真正的并发性。
  4. JRuby can use more memory
  5. JRuby有decided not to do件CRuby所做的事情。这包括continuation(我认为无论如何都在CRuby中弃用)和fork。它们还有不同的原生端和时间精度。
  6. JRuby doesn't enable ObjectSpace默认情况下。
  7. 我可能的原因包括:

    1. 您使用的库可能无法在JRuby下运行。例如,BioRuby在GitHub上有127个观察者和60个分支,与JRuby有minor incompatibility
    2. 恐惧,不确定性以及对使用不太流行的实现的怀疑。我知道JRuby比CRuby更好地传递RubySpec,但RubySpec尚未完成。
    3. 还有其他原因你不会使用JRuby吗?

2 个答案:

答案 0 :(得分:1)

就个人而言,虽然预先安装在Mac上,但我并不总是在我的Linux机器上安装Java。

顺便说一句,这里应该提到RVM作为处理多个(8个或更多?!)不同Ruby解释器的规范方法。

答案 1 :(得分:0)

JRuby似乎没有给予$SAFE高优先级。这篇博文是从2007年开始的,但从那以后我没有遇到任何变化。