在关于Blue Ruby这个问题的选择答案中,Chuck说:
所有当前的Ruby实现都被编译为字节码.与SAP的说法相反,从Ruby 1.9开始,MRI本身包含一个字节码编译器,尽管在合并YARV虚拟机的过程中将编译后的字节码保存到磁盘的能力消失了.JRuby被编译成Java .class文件.我没有关于MagLev的很多细节,但似乎可以肯定地说它也将采取这条道路.
我对Ruby的编译/解释问题感到困惑.
我了解到Ruby是一种解释型语言,这就是为什么当我保存对Ruby文件的更改时,我不需要重新构建项目.
但是如果现在所有的Ruby实现都被编译了,那么说Ruby是一种解释语言还是公平的吗?还是我误解了什么?
在许多讨论中,我听说过人们对语言有所保留的Ruby,猴子修补问题成为他们主要关注的问题之一.
但是,我很少听到在Python上下文中提出的相同论点,尽管在Python语言中也允许这样做.
为什么这个区别?
Python是否包含不同类型的安全措施以最大限度地降低此功能的风险?
SAP宣布推出Blue Ruby,这是在ABAP虚拟机中运行的Ruby版本.
这似乎为Ruby语言提供了额外的可信度,但除了SAP开发人员之外,它是否对Ruby社区的其他部分有任何适用性?
我只是想知道这可能有什么其他意义.或许,可以聘请Ruby开发人员从事SAP项目的其他工作机会?
Ruby程序员还有其他任何潜在的好处吗?
另外,我还不清楚:除了MRI和JRuby之外,还有多少不同的实现,为什么我作为Ruby程序员需要除MRI以外的任何实现?我知道如果我想与Java库集成,我可能需要JRuby.除了MRI或JRuby之外,还有其他任何时候我可能需要研究一个实现吗?
我注意到Blue Ruby已编译完成.这是一个很大的好处,这将是Ruby的第一个编译版本吗?
对不起 - 可能有太多问题,但这是一个大问题,但我不确定为什么/如果确实如此.非常感谢从比我更了解Ruby(和IT)的人那里获得一些反馈.