任何人都可以用外行的术语向我提供开发JRuby和Ruby,Rails应用程序之间的区别吗?
我使用NetBeans作为我的Ruby on Rails IDE,每次我创建一个项目都会问我这个问题 - 而且我并没有真正发挥作用.有任何赞成和缺点吗?
Ruby在基于C的本地解释器中运行.JRuby在Java虚拟机中运行.有许多宝石和插件在JRuby中可能不起作用,特别是在具有本机C扩展的情况下,除非它们已被重写为在Java中运行.
当您想要实际部署应用程序时(假设您想要使用的宝石不是问题),最终会产生差异.如果您想部署到Java Web服务器,那么JRuby将是您的选择.如果您有*nix环境,那么Passenger + Nginx或Apache也非常受欢迎,它使用标准的ruby或ruby企业解释器.总是存在杂种或细集群选项,再次使用标准解释器.
JRuby在Java VM上运行(解释器是用Java编写的),而原始的Ruby解释器是用C语言编写的.两者都有上下限(Ruby可以使用本机扩展,JRuby可以访问Java类型,对象等)
JRuby使用Ruby 1.8.6的语法,1.9.x即将推出.JRuby有Java线程(意味着它可以扩展到许多cpus,内核等),Ruby在用户空间线程,锁定ec方面存在一些问题.
就我个人而言,我使用JRuby和Glassfish v3以及Netbeans进行RoR开发,它比红宝石加载的杂物,阿帕奇更容易扩展,并且更容易管理.