为什么有不同的Ruby实现?

时间:2011-04-20 17:02:34

标签: ruby implementation interpreter

我是一名主要使用Java的新手程序员。最近我对Ruby感兴趣,当我去下载IDE时,我惊讶地发现没有单一的实现或语言解释器。我一直在努力研究这个问题,但我真的不明白如何创建一种语言,以便知道要寻找什么。

单一语言如何才能拥有多个解释器?这是否意味着它们之间存在重要差异,这对程序员意味着什么?如果这是一个误入歧途的问题,请原谅!

3 个答案:

答案 0 :(得分:7)

因为不同的语言实现者决定专注于特定领域。例如,与Java运行时(JRuby)兼容,或者使用JIT(rubinius)进行实验,在企业目标(REE)等目标等等......

这也不是Ruby独有的,它在某种语言中是健康的,如果某个特定群体在某个领域看到了该语言的潜力,它可以帮助促进该社区内的增长。

答案 1 :(得分:4)

大多数语言都有多种实现方式。事实证明,在一个项目中,有些权衡并不总是可以解决。

  • 平台集成
    您越接近一个平台,就越远离其他平台的集成。因此,有一个基本的选择:专业化或普遍性

  • 稳定性
    如果您愿意接受不稳定,那么可以追求更加雄心勃勃的目标。因此,有一个基本的选择:开发或稳定性

  • 管理团队
    在任何给定项目中,只有很多管理空间。创建新管理空间的唯一方法是创建一个新项目。因此,有一个基本的选择:您的项目或我的项目。从某种意义上说,这是“主要原因”,因为不同的管理者会选择不同的优先级。

答案 2 :(得分:1)

几乎所有语言都有多种实现,包括Java(例如Oracle Java,Apache Harmony,OpenJDK)。但是如果你想要ruby的默认实现,你可以使用以下代码:default ruby implementation using YARV

但是,除此之外,您可以使用不同的实现来在现有框架上使用ruby,就像使用Java JRubyIronRuby一样,以满足现有平台或应用程序的需要。这个行业。