请问有没有人能用通俗易懂的语言解释一下,开发 JRuby 和 Ruby 以及 Rails 应用之间的区别?
我使用 NetBeans 作为我的 Ruby on Rails IDE,每次创建项目时都会问我这个问题 - 我真的不明白它们之间的区别。它们有什么优缺点吗?
请问有没有人能用通俗易懂的语言解释一下,开发 JRuby 和 Ruby 以及 Rails 应用之间的区别?
我使用 NetBeans 作为我的 Ruby on Rails IDE,每次创建项目时都会问我这个问题 - 我真的不明白它们之间的区别。它们有什么优缺点吗?
Ruby运行在一个基于本地C的解释器中,而JRuby运行在Java虚拟机内部。对于一些具有本地C扩展的插件和gems,则需要重写以在Java环境下运行。
最终的区别在于您想实际部署应用程序的方式(假设您想使用的gems不是问题)。如果您想要部署到Java Web服务器,则应选择JRuby。如果您有一个*nix环境,那么Passenger+Nginx或Apache也很受欢迎,它们使用标准的ruby或ruby企业解释器。还可以使用mongrel或thin集群选项,同样使用标准解释器。
JRuby 运行在 Java 虚拟机上(解释器是用 Java 写的),而原始的 Ruby 解释器是用 C 写的。两者都有优缺点,比如 Ruby 可以使用本地扩展,JRuby 可以访问 Java 类型、对象等。
JRuby 使用 Ruby 1.8.6 的语法,1.9.x 很快就会可用。JRuby 具有 Java 线程(意味着它可以扩展到多个 CPU、核心等),而 Ruby 在用户空间线程方面存在一些问题,锁定等。
我个人使用 JRuby、Glassfish v3 和 Netbeans 进行 RoR 开发,它比 ruby + 大量 mongrels、Apache 更好地扩展,并且更容易管理。
JRuby 是 Ruby 编程语言的 Java 实现。