Ruby的三个“最终”版本?

时间:2010-06-20 16:05:03

标签: ruby

我最近玩过IronRuby,但我也想安装参考实现。毋庸置疑,当涉及到Ruby时,我就是一个菜鸟,所以我有一个非常愚蠢的问题。

RubyForge download page上,有三个不同的最终版本的Ruby安装程序(适用于Windows):

  • ruby​​installer-1.8.6-p398.exe
  • ruby​​installer-1.8.7-p249.exe
  • ruby​​installer-1.9.1-p378.exe

我不明白如何有三种不同的最终版本。我可以理解有一个1.8版本和一个1.9版本,但为什么我可以在1.8.6和1.8.7之间进行选择?

我真正想知道的是什么版本是“最好的”?如果答案是“1.9.1”,为什么选择1.8.6或1.8.7?

我很困惑......

3 个答案:

答案 0 :(得分:7)

最终安装程序的3个不同版本背后的原因基于以下标准:

1.8.6是生产服务器中使用最广泛的版本,因此发布了与这些案例兼容的版本

1.8.7是Ruby-Core定义的更新的稳定标准,并且很可能会受到Ruby开发人员对1.8分支的关注

1.9.1是Ruby的新版本,基于一个名为YARV的新虚拟机。这个分支(1.9)是Ruby-Core开发人员大部分时间关注的分支。

包的原因是,能够满足3种不同类型的用户。其中一个试图模仿生产环境,一个以1.8工作开始,一个使用更新的功能。

还有1.9.2-preview3,这是候选版本之一,其新功能将于8月发布。

希望有所帮助。

-

答案 1 :(得分:4)

1.9.1是最新版本的ruby,而不是“最好的”。通常,bleading-edge版本包含与先前版本的不兼容性以及新功能。这使得较新版本不向后兼容旧版本。最重要的是,如果您计划运行基于这些版本编写的代码,那么您需要“旧”版本。

此外,一个版本,通常是较旧版本,非正式地被认为是“稳定”和“便携式”版本。在ruby的情况下,我相信它是1.8.7版本。检查这个问题的好方法是查看最新版本的linux或os x作为预安装的ruby版本。

这些只是您在选择要安装的版本时需要考虑的一些因素。请注意,您可以在同一个框中拥有多个版本的ruby。这样做的一个不错的工具是rvm

答案 2 :(得分:4)

  

我不明白如何有三种不同的最终版本。

没有三个不同的最终版本,只有一个:在这种情况下,“final”表示安装程序的版本,而不是解释器。两个解释器的所有三个版本只有一个安装程序。

  

我可以理解有一个1.8版本和一个1.9版本,但为什么我可以在1.8.6和1.8.7之间进行选择?

在Ruby中,次要数字的变化表示显着的向后兼容性和/或主要的新语言功能。 1.8→1.9过渡具有不兼容性和新功能。虽然Ruby 1.9是当前版本,但仍然有很多代码,还没有更新到Ruby 1.9。此外,许多操作系统尚未提供Ruby 1.9作为默认值,有些操作系统根本不提供Ruby 1.9。

这就是为什么同时存在1.9和1.8。

为什么两个版本的1.8?那么,1.8.7就是这种奇怪的颠覆。 1.8.7从1.9中获得了大量的功能后退,以简化过渡。但是,很长一段时间内,1.8.7没有得到很多人的认可,而且6.5.6仍然是Rails团队推荐的版本。 (这将随着Rails 3而变化,需要1.8.7或尚未发布的1.9.2。)

Ruby 1.8.6仍然是许多提供3年或5年支持合同的更缓慢移动的Linux发行版的默认(实际上只是)版本。 Ruby 1.8.6也是OneClick Installer的最新版本,它是RubyInstaller的前身。如果要将RubyInstaller替换为OneClick安装程序,它必须提供相同的版本。最后但并非最不重要的是,只有一个 ton 的代码在1.8.6上经过测试和验证。

此外,Ruby 1.8.6是由JRuby 1.0,1.1,1.2,1.3和1.4实现的版本。只有最近发布的JRuby 1.5升级到1.8.7。 JRuby 1.6将实现1.8.7和1.9.2。此外,IronRuby 1.0实现了Ruby 1.8.6。

换句话说:用于MRI 1.8.6的RubyInstaller仍然出于同样的原因,微软仍然支持Windows XP,在试图杀死它之后两次:有人使用它会让他们真的很不高兴如果他们没有吨。

  

我真正想知道的是什么版本是“最好的”?如果答案是“1.9.1”,为什么选择1.8.6或1.8.7?

就个人而言,我认为“最好的”是Ruby 1.9。 2 ,尚未发布。

这是我的个人细分:

  • 如果您刚刚开始使用Ruby并使用它,1.9.2是最好的版本:Ruby 1.9是该语言的最新版本,1.9.2被认为是1.9分支的功能完整版本;它修复了1.9.1中的一些疏忽和烦恼,并增加了一些不错的功能。此外,大多数Ruby实现不实现1.9.1,IronRuby将直接从1.8.6升级到1.9.2,JRuby将实现1.8.7和1.9.2,Rubinius也将实现1.9.2。
  • 如果你真的想要部署和/或分发Ruby应用程序,1.9.1和1.8.7是最好的版本,因为1.9.2还没有正式发布:如果你能逃脱就使用1.9.1用它(即如果您依赖的第三方库支持它),否则为1.8.7。
  • 如果你有一个很大的遗留代码库,请使用1.8.6。 (实际上,如果您有大型遗留代码库,请将其更新为1.9.2 ...)

请注意,您必须非常小心地区分语言的版本,实现,实现的版本以及的版本安装程序

例如,列表中的第一个是语言的1.8.6版本,MRI解释器,MRI版本1.8.6-p398和安装程序版本“Final”。您列表中的第三个是该语言的1.9.1版本, YARV 编译器/ VM(即来自其他两个的不同的实现),版本1.9.1-p378 YARV以及安装程序的“Final”版本。

IronRuby的1.0版本实现了Ruby的1.8.6版本,JRuby的1.5版本实现了版本1.8.7和Ruby的1.9.2(的一部分),可以通过命令行开关选择。