Я не понимаю, как может быть три разных финальных релиза.
Не существует трех разных финальных релизов, есть только один: «финал» в данном случае означаетверсия установщика , а не интерпретатор .Существует только один установщик для всех трех версий обоих интерпретаторов.
Я понимаю, что существует один релиз 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 не получал широкого признания, и 1.8.6 все еще является рекомендуемой версией командой Rails.(Это изменится с Rails 3, для которой требуется 1.8.7 или еще не выпущенный 1.9.2.)
Ruby 1.8.6 по-прежнему является версией по умолчанию (и фактически только) для большинства более медленныхПеремещение дистрибутивов Linux, которые предлагают 3-летние или 5-летние контракты на поддержку.Ruby 1.8.6 был также последней версией установщика OneClick, который был предшественником RubyInstaller.Если RubyInstaller должен заменить программу установки OneClick, он должен предлагать ту же версию.И наконец, что не менее важно, существует просто тонна кода, который был протестирован и проверен на 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.
Другими словами: RubyInstaller для MRI 1.8.6 все еще существует по той же причине, по которой Microsoft все еще поддерживает 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 (то есть реализация , отличающаяся * от других ) от версии YARV 1.9.1-p378а также версия "Final" программы установки.
Версия 1.0 IronRuby реализует версию 1.8.6 Ruby, версия 1.5 JRuby реализует как версию 1.8.7, так и (подмножество) 1.9.2 Ruby,выбирается переключателем командной строки.