2

我有兴趣在我们的办公室推广 JRuby 作为托管 Rails 应用程序的平台。

但它有多可靠?

它的性能是否优于 MRI 1.8.7?

JRuby 1.5 声明它与 Ruby 1.8.7 100% 兼容,这是否意味着 JRuby 可以运行任何Ruby/Rails 代码?

4

5 回答 5

4

是的,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/

于 2010-08-18T18:39:53.843 回答
2

JRuby 摇滚!!简单的原因是它的可移植性特性和与 Java 库的集成。我个人将它与 Netbeans 一起使用,并且附带的快速调试器看起来非常方便。另外,您不希望看到本地构建错误并处理它们。您为 JRuby 下载的所有这些 gem 可以 100% 跨任何平台工作。使用 JRuby,您只是引入了 Java 平台独立性的优势。

此外,JRuby 使用本机线程,它使用 OS 线程而不是 CRuby 中的绿色线程(我认为最新版本并非如此)

在 Gist 中,使用 JRuby!

于 2010-08-18T18:43:19.387 回答
2

我现在正在做很多 jruby 工作,可以告诉你,rails 在 jruby 解释器下肯定是一个可行的选择。我很高兴,在我的情况下,我不得不使用许多本地 Java 库,所以 jRuby 是一个非常棒的 Java 代码包装器。我会说我遇到了一些技术挑战,有些已经解决,有些还没有。

  1. 单元测试:启动 jvm,然后启动 rails 需要更长的时间,因此您的测试需要更长的时间才能运行 - 解决方案,可能类似于 nailgun 保持 jvm 运行
  2. 部署:我还没有让莺为我工作,我喜欢tomcat。这对我们来说是一个重大问题。
  3. 选择你的库,虽然一些 c 扩展可以工作,但它们并不是都同样兼容。

如果你有兴趣,我会强烈推荐 jruby 书,beta 版,来自http://pragprog.com的 Pragmantic Programmers

于 2010-08-18T19:00:08.693 回答
0

对于 windows,我发现它在处理大量数据时比 MRI 稳定得多。Windows 上仍然存在一些错误,但它们实际上是可以解决的。推荐。

于 2010-08-19T00:04:35.620 回答
0

免责声明:我在日常工作中不使用 jruby - 我只是尝试使用 jruby 运行现有代码。

这并不意味着它会成功运行所有代码。例如,bioruby 目前在 jruby 上调用 fork,尽管jruby 并不真正支持它。(虽然这更像是 bioruby 中的错误而不是 jruby 中的错误)

不过,我不会称这种行为“不可靠”。它是故障安全的,就像一架不会起飞的飞机,更不用说坠毁了

于 2010-08-19T00:04:50.597 回答