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

And*_*imm 7 ruby jruby

是否有优势,运行JRuby,如果你不知道任何Java?如果你只是想要比"Ruby"(MRI/YARV)更好地实现Ruby,人们建议使用JRuby.

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

其他人提到的有:

  1. 短期课程的表现.对于较长的程序,JRuby被描述为更快,但具有更长的初始化时间.这个问题讨论了解决方法.
  2. C扩展:JRuby支持一些(但不是全部)与MRI/YARV一起使用的C扩展.
  3. 并发作为一把双刃剑.有非线程安全的代码,人们还没有发现,因为最流行的实现没有真正的并发.
  4. JRuby 可以使用更多内存.
  5. JRuby 决定不做 CRuby 做的某些事情.这包括continuation(我认为无论如何都在CRuby中弃用)和fork.它们还具有不同的原生端和时间精度.
  6. JRuby 默认不启用ObjectSpace.

我可能的原因包括:

  1. 您使用的库可能无法在JRuby下运行.例如,BioRuby在GitHub上有127个观察者和60个分叉,与JRuby 有轻微的不兼容性.
  2. 恐惧,不确定性以及对使用不太流行的实现的怀疑.我知道JRuby比CRuby更好地传递RubySpec,但RubySpec尚未完成.

你有没有其他理由不使用JRuby?

Nea*_*all 1

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

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