Три "финальные" версии Ruby? - PullRequest
6 голосов
/ 20 июня 2010

Я поэкспериментировал с IronRuby в последнее время, но я бы тоже хотел установить эталонную реализацию.Само собой разумеется, я нуб, когда дело доходит до Ruby, поэтому у меня очень глупый вопрос.

На странице загрузки RubyForge есть три различных final версии установщика Ruby (для Windows):

  • rubyinstaller-1.8.6-p398.exe
  • rubyinstaller-1.8.7-p249.exe
  • rubyinstaller-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 ]

7 голосов
/ 21 июня 2010

Обоснование 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, которая является одним из возможных вариантов с новыми функциями, которые должны быть выпущены к августу.

Надеюсь, это поможет.

-

4 голосов
/ 21 июня 2010

Я не понимаю, как может быть три разных финальных релиза.

Не существует трех разных финальных релизов, есть только один: «финал» в данном случае означаетверсия установщика , а не интерпретатор .Существует только один установщик для всех трех версий обоих интерпретаторов.

Я понимаю, что существует один релиз 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,выбирается переключателем командной строки.

4 голосов
/ 20 июня 2010

1.9.1 - последний выпуск ruby, а не «лучший». Как правило, современные версии содержат несовместимости с предыдущими выпусками, а также новые функциональные возможности. Это делает более новую версию НЕ обратно совместимой со старыми версиями. Суть в том, что вам нужны «старые» выпуски, если вы планируете запускать код, написанный на основе этих выпусков.

Кроме того, один релиз, обычно более старый, неофициально считается «стабильным» и «переносимым» выпуском. В случае с ruby ​​я считаю, что это релиз 1.8.7. Хороший способ проверить это - увидеть, какие последние версии linux или os x имеют в качестве предустановленного выпуска ruby.

Это лишь некоторые факторы, которые необходимо учитывать при выборе версии для установки. Обратите внимание, что вы можете иметь несколько версий ruby ​​в одном окне. Достойный инструмент для этого - rvm .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...