Должен ли я использовать Ruby 1.9.2 с моим новым веб-приложением?

Запуск нового веб-приложения с Rails 3. Я по-прежнему относительно новичок в веб-разработке и действительно наслаждаюсь всеми доступными мне интернет-ресурсами, работая в Ruby 1.8.7 и Rails 2.3.5. Любые советы против использования Ruby 1.9.2 в моем новом проекте?

Ответ 1

Я успешно конвертировал все свои проекты Rails (кроме одного, но я над этим работаю) из Ruby 1.8.7/Rails 2.3.5 в Rails 3.0.0 и Ruby 1.8.7/1.9.2 RC2, и обе среды довольно стабильный.

К счастью, все изменилось с тех пор, как я опубликовал этот вопрос.

Рельсы

Если у вас нет чего-то, что мешает вам сделать это, я настоятельно рекомендую вам начать с Rails 3. Усилия, необходимые для обновления приложения с Rails 2 до Rails 3, должны отговорить вас от запуска с Rails 2.

Говоря о плагинах и Gems, многие разработчики начинают конвертировать свои библиотеки в Rails 3. В настоящее время существует очень высокий уровень совместимости. Более того, ориентированные на Rails 3 плагины, как правило, гораздо более мощные, чем Rails 2.3, благодаря новому API плагинов Rails. Они могут загружать задачи, они больше не злоупотребляют исправлениями обезьян или полагаются на внутренние хаки.

Кроме того, Rails 3 не за горами. Если ваш проект не будет развернут через 1 неделю, стабильная версия, вероятно, будет доступна до того, как вы развернете свой код. Я бы этого не сделал, учитывая, что в настоящее время я управляю несколькими проектами Rails 3 в производственной среде, и они довольно стабильны (Rails 3 RC1, Beta 4 имеет действительно странную ошибку в среде кэширования).

Ruby 1.9.2

Ruby 1.9.2 намного мощнее, чем Ruby 1.8.7. Если это новый проект, я предлагаю вам использовать ветку 1.9.

Обычно легче начать новый проект в Ruby 1.9, чем конвертировать существующий.

Ruby 1.9.2 работает быстрее, даже быстрее, чем REE. Большая часть обычных Ruby 1.8.7 Gems работает с Ruby 1.9, за исключением нескольких, таких как RCov. Опять же, вам очень понадобится библиотека, которая не работает с Ruby 1.9.2.

Если это произойдет, скорее всего, это устаревшая библиотека, и в экосистеме Ruby, вероятно, есть лучшая замена.

Если вы не можете найти альтернативу, помните, что Rails 3 предоставляет отличный способ использовать пользовательские библиотеки, благодаря Bundler. Вы можете раскошелиться на проект и попросить Bundler использовать ваш форк. Вы даже можете интегрировать библиотеку в свои репозитории и попросить Bundler загрузить библиотеку по пути.

Заключение

Исходя из моего личного опыта, я был очень доволен Ruby 1.9.2 и Rails 3. Это, безусловно, моя любимая среда и среда по умолчанию для новых проектов.

Если вы не можете использовать Ruby 1.9.2, попробуйте Ruby 1.8.7. С другой стороны, я настоятельно рекомендую вам начать с Rails 3.

Ответ 2

В конечном итоге это зависит от того, что такое проект. Если это персональный проект, и вы используете его как средство для изучения Ruby/Rails, я думаю, что было бы полезно изучить и использовать новейшие инструменты. Если это клиентская работа или проект, целью которого является только то, что нужно сделать, 2.3.5/1.8.7, вероятно, будет лучшим выбором из-за ресурсов, как вы упомянули, и много вспомогательных библиотек/драгоценных камней будут просто работай. Вам нужно будет изучить Rails 3/Ruby 1.9.x в какой-то момент, потому что определенно там, где находится сообщество.

Я бы сделал некоторые исследования и посмотрел, какие камни вам понадобятся для вашего проекта, и убедитесь, что все поддерживается, если вы выбираете маршрут Rails 3/1.9.2. Кроме того, присоединитесь к irc и спросите вокруг о том, как другие люди сталкиваются с любыми камнями, о которых идет речь.

Я могу сказать, что у меня есть небольшое приложение Rails 3/1.9.2, которое отлично работает в процессе производства, хотя оно очень мало и личный проект.

Ответ 3

Вы можете попробовать Ruby 1.9.2 с помощью RVM

Я использовал его время от времени для разработки некоторых приложений на Rails3, поддерживая наши текущие производственные сайты (вплоть до Rails 2.2/Ruby 1.8.5). Единственное, что нужно помнить, чтобы запустить RVM ^^