我有兴趣在我们的办公室推广 JRuby 作为托管 Rails 应用程序的平台。
但它有多可靠?
它的性能是否优于 MRI 1.8.7?
JRuby 1.5 声明它与 Ruby 1.8.7 100% 兼容,这是否意味着 JRuby 可以运行任何Ruby/Rails 代码?
我有兴趣在我们的办公室推广 JRuby 作为托管 Rails 应用程序的平台。
但它有多可靠?
它的性能是否优于 MRI 1.8.7?
JRuby 1.5 声明它与 Ruby 1.8.7 100% 兼容,这是否意味着 JRuby 可以运行任何Ruby/Rails 代码?
是的,JRuby 是可靠的!Oracle 将 JRuby 用于 Oracle mix ( http://mix.oracle.com/),Sun将它用于 Kenai ( http://kenai.com ),它将成为 java.net 的下一个基础(来自 kenai 站点:“将 Java.net 域迁移到 Kenai 基础设施的工作正在进行中”)!!
您几乎可以运行所有代码,一些 gems 使用原生 C 扩展,在 JRuby 中有对它的原始支持,但是是的……rails 可以正常工作。
您可以在 Tomcat 或 JBoss 等应用程序服务器中部署 Rails 应用程序,使用 Warbler 将 Rails 应用程序包装在 .war 文件中,这非常棒!
更新:您可以在这里看到很多基准测试:http: //programmingzen.com/2010/07/19/the-great-ruby-shootout-july-2010/
JRuby 摇滚!!简单的原因是它的可移植性特性和与 Java 库的集成。我个人将它与 Netbeans 一起使用,并且附带的快速调试器看起来非常方便。另外,您不希望看到本地构建错误并处理它们。您为 JRuby 下载的所有这些 gem 可以 100% 跨任何平台工作。使用 JRuby,您只是引入了 Java 平台独立性的优势。
此外,JRuby 使用本机线程,它使用 OS 线程而不是 CRuby 中的绿色线程(我认为最新版本并非如此)
在 Gist 中,使用 JRuby!
我现在正在做很多 jruby 工作,可以告诉你,rails 在 jruby 解释器下肯定是一个可行的选择。我很高兴,在我的情况下,我不得不使用许多本地 Java 库,所以 jRuby 是一个非常棒的 Java 代码包装器。我会说我遇到了一些技术挑战,有些已经解决,有些还没有。
如果你有兴趣,我会强烈推荐 jruby 书,beta 版,来自http://pragprog.com的 Pragmantic Programmers
对于 windows,我发现它在处理大量数据时比 MRI 稳定得多。Windows 上仍然存在一些错误,但它们实际上是可以解决的。推荐。
免责声明:我在日常工作中不使用 jruby - 我只是尝试使用 jruby 运行现有代码。
这并不意味着它会成功运行所有代码。例如,bioruby 目前在 jruby 上调用 fork,尽管jruby 并不真正支持它。(虽然这更像是 bioruby 中的错误而不是 jruby 中的错误)
不过,我不会称这种行为“不可靠”。它是故障安全的,就像一架不会起飞的飞机,更不用说坠毁了。