Merb łączy się z Rails

Opublikowane przez Jarosław Zabiełło Wed, 24 Dec 2008 14:01:00 GMT

Ogłoszone wczoraj połączenie się frameworków Merb i Rails wywołało z miejsca burzę na kanale IRC #merb. Informacja pojawiła się już na blogu RoR, Ezry, Yehudy czy Matta Aimonetti jak i samego DHH (wpis z dzisiaj). Na oficjalnej stronie Rails stworzono specjalną podstronę rubyonrails.org/merb mającą upamiętnić ten dzień. Co z tej, trochę sensacyjnej, fuzji wynika, a co nie?

Z burzliwych dyskusji na IRC’u (sam w tym brałem udział) najwięcej wątpliwości mieli miłośnicy Merba. Tzn. problemem nie jest fuzja jako taka. Nikt tak naprawdę nie jest zainteresowany podtrzymywaniem “wojny” między Merbem a Rails. Rails ma duża, wielomilionową, bazę użytkowników, znaną nazwę. Z kolei Merb powstał później, wyciągnął naukę z błędów Rails. Merb został zbudowany na lepszych założeniach, jest szybszy, modularny, bardziej elasyczny. Połączenie obu frameworków to wielkie wzmocnienie pozycji Ruby’ego w świecie aplikacji webowych. Pytanie tylko, jak taka fuzja miałaby wyglądać od strony praktycznej? Bardzo dużo światła na tą kwestię rzuca Matt Aimonetti, który na swym blogu wstawił prezentację video (jest też angielska transkrypcja) stanowiącą odpowiedzi na najczęstsze pytania, czyli tzw. FAQ.


Matt Aimonetti: message to all merbists from mattetti on Vimeo.


Podsumowując wszystkie zebrane przeze mnie informacje można powiedzieć, że:

  • Core team Merba i Rails łączy siły i zaczyna wspólne prace nad Rails 3.0.
  • Rails 2.x będzie rozwijany aż do mającej wyjść w styczniu wersji 2.3, następną wersją będzie Rails 3.0
  • Merb 1.x będzie rozwijany aż do wersji 2.0, która zmieni nazwę na Rails 3.0.
  • Rails 3.0 nie będzie w pełni kompatybilny ani z Rails 2.x ani Merb 1.x. Jednakże oba zespoły dołożą wszelkich starań aby przejście na Rails 3.0 (z Rails 2.3 i Merba 1.x) było jak najprostsze. Bez względu na to, czy aktualnie rozwijasz projekt w Rails 2.x czy Merb 1.x, przejście na Rails 3.0 ma być podobnie łatwe.
  • Rails 3 ma uzyskać pełne możliwości Merba 1.x a nawet więcej (np. slices będą jeszcze lepsze, dowolny projekty Rails 3 będzie można zamienić na moduły i z nich budować kolejne projekty). Będzie można tworzyć mikroframeworki w stylu Sinatry czy Camping (w Merbie jest to opcja --flat i --very_flat), z Rails wylecą krytykowane alias_method_chain, API zostanie podzielone na część publiczną i prywatną. Wszystko wskazuje na to, że Rails stanie się po prostu Merbem. Ale oczywiście, wiele kwestii technicznych jeszcze będzie przedyskutowanych w obu zespołach.
  • Rails 3 ma pojawić się w niewiarygodnie krótkim czasie – 6 miesięcy, a pierwsza wersja próbna ma być gotowa w maju na najbliższej konferencji RailsConf 2009. Trochę trudno wierzyć, że taki krótki termin zostanie utrzymany. No chyba, że całe porcje kodu wewnętrznej implementacji Rails będą wymienianie na kod Merba… Myślę, że to całkiem realna perspektywa. DHH będzie nadal dzielnie propagował Rails (i to robi doskonale), a team od Merba zrobi porządki w kodzie.

Nowy, szybki Rails 3.0 zbudowany na fundamencie Merba, działający w JRuby, Ruby 1.9 (?), mod_passenger, może rozjechać jak walec konkurencję…

Tagi , ,  | 15 comments

Comments

  1. Avatar dmilith powiedział about 4 hours later:

    Oby. Jednak jak za core wzięli się ludzie z Merba, to podejrzewam że szykuje się małe bum. Jeśli chłopaki umiejętnie połączą zalety kodu Merba i Railsów do jednego projektu to możemy otrzymać coś naprawdę rewelacyjnego. Czekamy.

  2. Avatar Strzalek powiedział about 7 hours later:

    Taa i po co ja kupiłem Twoją książkę? Za “chwilę” będzie out-of-date ;)

    A całkiem poważnie – myślę że to może cholernie wzmocnic RoR na rynku i masowo zyskać kolejnych zwolenników.

  3. Avatar teamon powiedział about 10 hours later:

    Oj burzliwa była ta dyskusja :) Jednak wszystko wskazuje na to, że Merb&RoR team obrał dobra drogę do celu. Pozostaje teraz tylko czekać (ew pomoc w rozwoju)

  4. Avatar Jacek Laskowski powiedział about 10 hours later:

    Nigdy nie pracowałem z RoR, merb czy innym podobnym szkieletem opartym na Ruby, ale ślędzę poczynania rozwojowe z tym związane przez Twój blog. Dowiedziałem się ostatnio, jaki to merb jest wspaniały i że RoRa czeka pewna śmierć. Jakie było moje zaskoczenie, kiedy przeczytałem dzisiaj ten wpis. Mogę sobie wyobrazić jakie musiało być w świecie merba. (Pokierowany przez Twoje wpisy) sam byłem wstrząśnięty! ;-) Merb jest (podobno) mocny, ale RoR to jest marka. Trudno się często oprzeć takim nietechnicznym argumentom, co?

    p.s. Mam nadzieję, że jRoR wyjdzie niedługo po ukazaniu się RoR 3.0, albo będzie ukazywał się w wersji rozwojowej równie często jak te z połączenia RoR+merb.

  5. Avatar Jarosław Zabiełło powiedział about 12 hours later:

    Nie ma sensu mówić o jakimś jRoR. Zarówno Rails jak i Merb w obecnych wersjach bez problemu pracują w JRuby (nawet są szybsze niż w wypadku użycia Ruby MRI) i tym samym łatwo współpracują z systemami w Javie. Nowy Rails 3.0 to po prostu Merb 2.0. Marketing i nazwa będzie po Rails, implementacja, szybkość, modularność i inne możliwości to będzie głównie kod Merba (który zastąpi sporo aktualnego kodu w RoR)

  6. Avatar Paweł Kondzior powiedział 1 day later:

    Na ircu było wesoło ;) i na #merb i na #rubyonrails.pl, juz mowilem to kilka razy ;) powiem raz jeszcze, jestem pod glebokim wrazeniem ich postepowania, to naprawde rzadkie w swiecie Open Source, produktywnosc ponad podzialami. Decyzje kontrowersyjne politycznie, zwrot o 180 stopni itd ;P

    Pozostaje nam tylo czekac na publiczne repo 3.0 i przygladac sie rozwojowi ;> a inne srodowiska beda nam mogly tylko zazdroscic tak dojrzalych programistow ;) jesli sie uda, ale sadze ze nikt nie dopuszcza nawet mysli ze moze sie nie udac.

  7. Avatar Adam Kubica powiedział 1 day later:

    Jak dla mnie rewelacyjny news na święta :-)

    Takiego czegoś się nie spodziewałem, faktycznie połączenie tych dwóch frameworków rozjedzie konkurencję jak walec, a już teraz im nie jest do śmiechu :-)

  8. Avatar [email protected] powiedział 1 day later:

    chyle czola przed decyzja o polaczeniu railsow z merbem (czy tak odwrotnie jak ktos woli ;) ) mysle ze dla niektorych osob (w tym i dla mnie) jest to jeden z najlepszych prezentow na swieta :)

  9. Avatar kazio powiedział 2 days later:

    Na taki samu pomysl powinni wpasc developerzy django i pylonsow, zostalyby na rynku 2 liczace sie projekty, i znajac je obydwa, znaloby sie wszystko co liczy sie w dzisiejszym webdevelopingu :)

  10. Avatar JO powiedział 3 days later:

    Czyzby przepowiednia iz nastapil “koniec rails” sie nie sprawdzila :( no nie ! a te przepowiednie zawsze byly jak wyznacznik nowej sciezki :(

  11. Avatar riklaunim powiedział 3 days later:

    @kazio Pylons i Django to dwa zupełnie różne podejścia. Pylons to zbiór komponentów, które można wymienić, a większość funkcjonalności opiera się o middleware. Django to framework o stałej budowie i składzie, rozszerzany głównie przez aplikacje.

    TurboGears “połączył się” z Pylons (teoretycznie) i jak na razie nie ma za bardzo co z czym się łączyć. Jest web2py (nie mylić z web.py), któremu bliżej chyba do Pylonsa. web.py to inna nisza frameworkowa.

  12. Avatar Jiima powiedział 5 days later:

    Aż mi mowę odjęło, gwiazdka i te sprawy, deweloperzy mówią ludzkim głosem… Dotąd zwykle słyszało się o forkach, o wojnie zespołu RoR z każdym projektem który miał “rails” w nazwie niczym nie przymierzając pewna firma z Redmond która czepia się każdego kto w nazwie programu użyje słowa na “W”, o kolejnym systemie “w stylu” który ma rozwiązać “wady” tego co jest. A tu nagle zespół RoR, który najpierw doprowadził do szewskiej pasji pewnego muzyka z pasją programisty twierdząc że jego pomysły są bez sensu i nie w duchu RoR, potem prowadził długie polemiki z tymi co muzykowi rację przyznali i napisali po swojemu, teraz nagle…

    - Najpierw mówi że wydajność aplikacji webowej jednak MA znaczenie…

    - Potem mówi że jednak jest coś w tym bezpieczeństwie wątkowym

    - Niemal w tym samym momencie odkrywa, że jednak nie cały świat mówi po angielsku

    - Wreszcie w zasadzie przyznali że DHH, Katz i spółka zrobili to lepiej i sprzedali im swoją markę.

    Trudno mi w to uwierzyć. Czekam na Visual Studio 2011 obsługujące Jave 7, Scalę i Perla.

  13. Avatar Jiima powiedział 5 days later:

    Tak poza tym, szkoda że nie dało się w ten sposób od razu. Joiny projektów zdarzają się. Projekty napisane w innym języku, na obraz i podobieństwo też (ostatnio ktoś zaczął pisać DataMappera w PHP, reakcja twórców DataMappera – piszcie, fajnie że będzie DM w innym języku – od Jiimy, szkoda że w PHP a nie Pythonie). Ale na szczęście każdy kiedyś dorasta. Aimonetti powiedział że “nie było wojny między Merbem i Rails”. Może ludzie tworzący Merba tak uważali, ale ze strony społeczności RoR i nieco bardziej skłonnych do fanatyzmu użytkowników Merba wyglądało to trochę inaczej.

  14. Avatar Jarosław Zabiełło powiedział 6 days later:

    Jiima: DataMapper to nazwa popularnego wzorca projektowego. Więc to, że ktoś tworzy coś o tej nazwie w PHP nie znaczy, że portuje DataMapper ORM z Ruby’ego. Aczkolwiek w wypadku podanego linka, autorzy przyznają się do inspiracji tym ORM’em. Faktycznie przydałoby się coś podobnego dla Pythona. SQLAlchemy jest zbyt zamotany.

  15. Avatar Jiima powiedział 8 days later:

    @JZ Wiem że data mapper to nazwa wzorca, ale akurat tamten projekt mówił coś o portowaniu, a i sam główny twórca DM / Ruby życzył im powodzenia. Z Alchemy problem jest jeden – to zbyt uniwersalne środowisko, twórcy za bardzo położyli nacisk na jego elastyczność na nie łatwość użycia, uważając że łatwość wsadzi się do plugina (np. elixira, który jest o wiele przyjemniejszy w użyciu, choć jest to konkretnie active record, co jest jego pewną wadą). (DM paradoksalnie nie jest do końca “data mapperem” gdyż za dużo w nim active recordu.) Alchemy porównywałbym raczej z Sequelem – a dokładniej z ORMem będącym częścią Sequela (choć znów jest to AR a nie DM) – też dysponuje dużą elastycznością, ale brakuje mu wysokopoziomowych konstrukcji oszczędzających czas i pracę. Wprawdzie tutoriale mówią jak sobie radzić z tym brakiem, ale chyba lepiej napisać 1 – 2 polecenia niż przeklejać przykłady z tutoriala (w każdym wypadku ja wolę).

(leave url/email »)

   Pomoc języka formatowania Obejrzyj komentarz