Ruby on Rails 3

2 lata developmentu, tysiące commitów od ponad 1600 autorów, 4 wersje beta, 2 release candidate i wreszcie jest… Gemy finalnej wersji Rails 3.0 są do pobrania już od wczoraj. Nie obyło się bez opóźnień – pierwsza wersja RC była planowana jeszcze na czerwiec (w trakcie lub tuż po RailsConf 2010), lecz ukazała się dopiero z końcem lipca. Na finiszu jednak team Rails nie zawiódł i zapowiedź wersji finalnej na ten tydzień nie była pustą obietnicą. Licząc na to, że autorzy wynieśli nauczkę z faux pas z wersją 2.3.6, to jest naprawdę to, na co wielu developerów zaciera ręce.

Dla niecierpliwych

Już w tej chwili możesz wywołać

gem install rails

i pobierze się najnowsza wersja RoR. Wraz z Rails finalne wersje 1.0 osiągnęły dwa kluczowe elementy frameworku – Bundler i ARel. One również zainstalują się wraz z instalacją nowych Railsów.

Trochę bardziej cierpliwym polecam skorzystanie z rvm, który również zaledwie tydzień temu osiąnął „dojrzałość” w postaci wersji 1.0. Dzięki temu narzędziu można nieinwazyjnie przygotować optymalne, odizolowane środowisko dla developmentu. A warto wiedzieć, że Rails 3 wspierają tylko wersje Ruby’ego 1.8.7 i 1.9.2. Jeśli możesz przeboleć niezgodność niektórych gemów z Rubym 1.9, polecam korzystanie z tej ostatniej wersji. Dzięki rvm przesiadka będzie całkowicie bezbolesna.

Jak to podejść?

Czy wybrać już Rails 3 do najnowszego projektu? A może lepiej przeczekać jeszcze kilka miesięcy z 2.3.x? Główna obawa dotyczyć może zgodności zewnętrznych gemów z nową wersją frameworku. Na szczęście sytuacja wygląda całkiem optymistycznie. Developerzy mieli sporo czasu na zapoznanie się z nowym API i dzięki temu wiele poważniejszych gemów jest już dziś gotowa do współpracy z Rails 3. Na myśl przychodzą choćby haml, authlogic, will_paginate, hoptoad_notifier. Wszystkie pluginy ekipy Thoughtbot (paperclip, shoulda, factory_girl) były już w czerwcu kompatybilne z ówczesną betą, teraz można co najwyżej czekać na oficjalne wersje zgodne z finalną wersją Rails 3.

Wątpliwości i obawy co do kompatybilności bibliotek pomoże rozwiać strona http://www.railsplugins.org, a dla korzystających z Ruby 1.9.2 dodatkowo http://isitruby19.com

Dla mnie osobiście nie ma już dyskusji. Zobaczyłem światło (czyt. ARela i nowy ActionMailer) i nie zamierzam się oglądać wstecz przy nowych projektach.

Niektórych może też kusić migracja istniejącego projektu z 2.x do 3.0. Dla większości średnich i dużych projektów, które wyszły już z etapu dynamicznego developmentu, gra nie będzie warta świeczki. Choć powstało narzędzie automatyzujące część procesu migracji (rails_upgrade), w wielu przypadkach i tak będzie to droga przez mękę, a korzyść z tego niewielka. Co innego jeśli mowa o mniejszych lub hobbystycznych projektach. Ale w takiej sytuacji i tak nikogo przekonywać nie muszę…

Dokumentacja

Już dziś poradniki na stronie Rails Guides są aktualne do wersji 3.0. Kluczowe różnice względem wersji 2.3 można znaleźć w sekcjach:

Oprócz oficjalnych poradników warte uwagi dla adeptów Rails 3 będą:

Po inne materiały (a jest ich już całkiem sporo) odsyłam do niedawnego wpisu na oficjalnym blogu rubyonrails.org.

Warto wiedzieć, że sporo książek poświęconych Rails 3 jest już na ukończeniu i w niedługim czasie powinny być dostępne. Odświeżony klasyk „Rails Way” ma się ukazać z końcem października, a inne tytuły nawet jeszcze we wrześniu. Jak będzie z polskimi wersjami książek? Strony polskich wydawców na razie milczą. Na pierwsze tytuły o Rails 3 przyjdzie nam zapewne sporo poczekać.

W końcu

Skończyły się wymówki. Ruby on Rails 3.0 już jest, teraz nic nie stoi na drodze byś zbudował(-a) The Next Big Thing. Na co czekasz?!? gem install rails i do roboty!



Komentarze

  1. Jaroslaw Zabiello 31.08.2010

    Comment Arrow

    Oficjalnie Rails 3 działa na Ruby 1.9.2, Ruby 1.8.7 oraz JRuby 1.5.2+.


  2. bauer 7.09.2010

    Comment Arrow

    „Niektórych może też kusić migracja istniejącego projektu z 2.x do 3.0. Dla większości średnich i dużych projektów, które wyszły już z etapu dynamicznego developmentu, gra nie będzie warta świeczki.”

    Czy mógłbyś rozwinąć „grę niewartą świeczki”? Rozumiem, że pracy byłby ogrom, ale czy i tak nie warto przesunąć projekt w kierunku Rails 3 i skorzystać z jego zalet?


  3. Czak 9.09.2010

    Comment Arrow

    Ja widzę korzyści w Rails 3 głównie na etapie developmentu. Jeśli aplikacja w 2.3.x już dziś robi co powinna robić i robi to dobrze, wtedy nie chciałoby mi się tracić życia na portowanie jej.

    Oczywiście to kwestia względna – jeśli aplikację czeka jeszcze dużo pracy zanim dobrnie do 1.0, wtedy jak najbardziej można pomyśleć o przejściu na 3.




O autorze

Łukasz Adamczak

Programuje w Rubym i dłubie w Rails od końca 2007. Przygody z Javą i PHP były krótkie, ale wystarczyły by z pasją i wzajemnością zakochać się w RoR. Wierny członek sekty nadgryzionego jabłka. Od niedawna adept tajemnej sztuki Objective-C.