Three "final" versions of Ruby?

I have been playing with IronRuby recently, but would also like to set up a reference implementation. Needless to say, I'm noob when it comes to Ruby, so I have a very silly question.

On the RubyForge download page page, there are three different versions of the final Ruby installer (for Windows)

  • rubyinstaller-1.8.6-p398.exe
  • rubyinstaller-1.8.7-p249.exe
  • rubyinstaller-1.9.1-p378.exe

I don’t understand how there can be three different final releases. I can understand that there is one release 1.8 and one release 1.9, but why can I choose between 1.8.6 and 1.8.7?

What would I really like to know which version is the “best”? If the answer is "1.9.1", why choose 1.8.6 or 1.8.7?

I'm confused...

+6
ruby
source share
3 answers

The rationale for the three different versions of the final installers is based on the following criteria:

1.8.6 is the most common version used on production servers, so the release was made to ensure compatibility with these cases.

1.8.7 is the newer stable standard defined by Ruby-Core, and for the most part, it is likely to get attention from Ruby developers for the 1.8 branch

1.9.1 is a new version of Ruby based on a new virtual machine called YARV. This branch (1.9) is what most of the time takes the attention of Ruby-Core developers.

The reason for the packages is that it can satisfy 3 different types of users. They try to simulate work environments, starting with 1.8 jobs and using new features.

There is also 1.9.2-preview3, which is one of the candidates for versions with new features installed for release by August.

Hope this helps.

-

+7
source share

1.9.1 is the latest release ruby, not the "best." Glitter editions typically contain incompatibilities with previous versions, as well as new features. This makes the new release NOT backward compatible with older versions. The bottom line is that you need "older" versions if you plan to run code written based on these releases.

In addition, one issue, usually older, is unofficially recognized as a “stable” and “portable” issue. In ruby, I think this is release 1.8.7. I will check this well to see which latest linux or os x versions have a pre-installed ruby ​​version.

These are just some of the factors to consider when choosing a version to install. Please note that you can have several versions of ruby ​​in one window. A worthy tool for this is rvm .

+4
source share

I don’t understand how there can be three different final releases.

There are not three different final releases, there is only one: "final" in this case means the installer version, not the interpreter. For all three versions of both interpreters, there is only one installer.

I can understand that there is one release 1.8 and one release 1.9, but why can I choose between 1.8.6 and 1.8.7?

In Ruby, a minor change indicates a significant backwardness-incompatibility and / or major new features of the language. The transition 1.8 → 1.9 has both incompatibilities and new features. Although Ruby 1.9 is the current version, there is still a lot of code that has not yet been updated to Ruby 1.9. In addition, many operating systems still do not ship Ruby 1.9 by default, and some do not ship Ruby 1.9 at all.

That is why there are both 1.9 and 1.8.

Why two versions 1.8? Well, 1,8,7 is a strange imposition. 1.8.7 received a massive supply of functions from 1.9 to facilitate the transition. Over time, however, 1.8.7 has not received much approval, and 1.8.6 is still the recommended version of the Rails team. (This will change with Rails 3, which requires 1.8.7 or not yet released 1.9.2.)

Ruby 1.8.6 is still the standard (and actually only) version for many of the slower moving Linux distributions that offer three-year or 5-year support contracts. Ruby 1.8.6 was also the latest version of the OneClick installer, which was the predecessor of RubyInstaller. If RubyInstaller is a replacement for the OneClick installer, it should offer the same version. And last but not least, there is just a ton of code that has been tested and verified on 1.8.6.

In addition, Ruby 1.8.6 was the version implemented by JRuby 1.0, 1.1, 1.2, 1.3, and 1.4. Only recently released JRuby 1.5 rose to 1.8.7. JRuby 1.6 will implement both 1.8.7 and 1.9.2. In addition, IronRuby 1.0 implements Ruby 1.8.6.

In other words: RubyInstaller for MRI 1.8.6 still exists for the same reason that Microsoft still supports Windows XP, after trying to kill it twice: there are people who use it, who would really be upset, etc.

What would I really like to know which version is the “best”? If the answer is "1.9.1", why choose 1.8.6 or 1.8.7?

Personally, I think the “best” is Ruby 1.9. 2 , which has not yet been released.

Here is my personal reason:

  • if you are just starting with Ruby and playing with it, 1.9.2 is the best version: Ruby 1.9 is the latest version of the language, and 1.9.2 is considered a fully functional version of the 1.9 branch; it fixes some bugs and annoyances in 1.9.1 and adds some nice features. In addition, most Ruby implementations do not implement 1.9.1, IronRuby will go straight from 1.8.6 to 1.9.2, JRuby will implement both 1.8.7 and 1.9.2, and Rubinius will also go to 1.9.2.
  • If you really want to deploy and / or distribute Ruby applications, versions 1.9.1 and 1.8.7 are the best versions, simply because 1.9.2 is not officially released: use 1.9.1 if you can leave with it (i.e. if third-party libraries depend on its support), otherwise 1.8.7.
  • If you have a large legacy code base, use 1.8.6. (In fact, if you have a large outdated codebase, upgrade it to 1.9.2 & hellip;)

Please note that you must be very careful to distinguish between language version, implementation, implementation version, and installer version.

For example, the first on your list is the language version 1.8.6, the MRI interpreter, the version 1.8.6-p398 MRI, and the "Final" version of the installer. The third on the list is language version 1.9.1, the YARV / VM compiler (that is, another implementation of the other two), version 1.9.1-p378 from YARV, and the version of the "Final" installer.

Version 1.0 IronRuby implements version 1.8.6 Ruby, version 1.5 JRuby implements both version 1.8.7 and (a subset) 1.9.2 Ruby, which can be selected using the command line.

+4
source share

All Articles