Volt, Padrino, Cuba, Lotus

Witam,

w najbliższym czasie będę startował z nowym, niekomercyjnym projektem i chciałem ruszyć coś nowego ze środowiska Rubiowych frameworków. Rails, czy Sinatra są jak najbardziej ok, ale myślę, że wymagania tego projektu są na tyle elastyczne, że swobodnie pozwolą mi na zabawę z nowym ‘środowiskiem’. W związku z tym mam pytanie - czy ktoś z Was korzystał z któregoś powyżej? Wiem, że Padrino, Cuba czy Lotus to, umówmy się nieco “lżejsze” wersje Railsów, dlatego najbardziej interesuje mnie Volt, bo to coś (może nie zupełnie, ale na pewno po części) innego. Jeśli ktoś już pracował i może coś powiedzieć na temat któregoś z powyższych to byłbym wdzięczny :wink: co Wam się w nich najbardziej podoba, a co denerwuje?

dzięki z góry.

Padrino to w uproszczeniu railsy na sinatrze - jak dla mnie nie ma sensu.

Jeśli Cuba to może Roda, ostatnio dość popularna, fork Cuby, a autorem jest Jeremy Evans (ten od Sequela)

Lotus mhm … może i fajna alternatywa, ale jakoś wątpie żeby się przebił, przez już istniejący gąszcz frameworków.

Volt fajne rozwiązanie, bo kompiluje kod do jsa, ale poważnym minusem jest to, że wymaga tylko i wyłącznie mongo, wprawdzie pracują nad adapterem sqlowym (za co trzymam kciuki), ale chyba jeszcze trochę im to zajmie.

No właśnie ograniczone wsparcie (a właściwie jego brak) dla, nazwijmy to, bardziej standardowych DB jest jednym z największych minusów Volta, dlatego jeszcze się zastanawiam :wink:

jeśli chodzi o Rodę to nie słyszałem szczerze mówiąc, więc to bardzo cenne info, zbadam teren - dzięki bardzo!

Sprawdź jeszcze Trailblazera https://github.com/apotonick/trailblazer jeżeli bardziej niż komunikacja z JSem irytuje cię ‘legacy’ podejście.

I daj znać jak poszło ;D Po my narazie próbowaliśmy tylko kawałka “reform” i uczucia mamy mieszane wszyscy ;]

też nie słyszałem jeszcze o tym, ale na pierwszy rzut oka to chyba nie do końca to czego szukam, bo jak sami autorzy piszą “Trailblazer is a thin layer on top of Rails.”, a ja chciałem zejść raczej w drugą stronę (czyt. w dół, ewentualnie w bok od railsów) :wink: chociaż przyznam, że sama koncepcja “wymuszenia” obiektowości na Railsach wydaje się bardzo interesująca, bo obecnie wiemy jak to niestety wygląda :wink: suma summarum - propozycja warta przemyślenia!

a jakie są Wasze mieszane uczucia? i co ważniejsze - czego dotyczą :smile:

Koniecznie sprawdz Roda. Dla mnie to najlepsza opcja w tym momencie. Lotus jest mocno niedojrzaly i kopiuje mase pomyslow z Rails, czyli troche bez sensu, aczkolwiek taki jest cel projektu - zrobic lepsze Railsy. Cuba jest extremalnie minimalistyczny, a Padrino jak juz zostalo powiedziane to Rails na Sinatrze.

Natomiast Roda to bardzo maly core + tona plugins. Osobiscie jedynie pobawilem sie troche i nic wielkiego nie napisalem w Roda ale sposob w jaki jest napisany mocno do mnie przemawia. Np instancja aplikacji jest immutable, finalizacja polega na zamrozeniu :smile: do tego Jeremy bardzo zwraca uwage na to aby Roda nie zasmiecala namespace aplikacji aby unikac konfliktow z nazwami, no i oczywiscie routing tree to bardzo eleganckie rozwiazanie i dosc mocno unikatowe.

Ostatnio Janko Marohnić napisal fajnego posta o Roda: http://twin.github.io/introduction-to-roda/

W najblizszym czasie planuje zbudowac mini-stack w oparciu o Roda + kilka customowych plugins z robocza nazwa rodakase i do tego ROM zamiast Active Recordowych ORMow.

1 Like

Cokolwiek co jest zbudowane “on top of Rails” nie ma prawa byc dobrym rozwiazaniem (sorry Nick!). Railsy zwyczajnie nie zostaly zaprojektowane aby byc warstwa nisko-poziomowa. Albo uzywasz Railsow tak jak w Basecamp albo konczysz z sieczka w kodzie. Rails jest sam w sobie koszmarnie skomplikowany, dokladanie kolejnej warstwy jedynie zwieksza zlozonosc calego systemu - jak dla mnie nie ma to sensu. Do tego Trailblazer jest mocno OO i probuje zamknac wszelkie problemy w kilku abstrakcjach, nie sadze ze moze to byc uniwersalnym narzedziem do budowania aplikacji, tego typu abstrakcje predzej czy pozniej powoduja wiecej problemow niz daja korzysci.

2 Likes

Mamy kilka aplikacji w Roda + ROM (głównie API), co nie oznacza, że nie można tam budować innych rzeczy jak API - wystarczy dodać odpowiedni plugin.

Jakiś czas temu zrobiłem migrację API (z ROMem) z Sinatry na Rodę: https://github.com/wafcio/roda-rom, więc jakby były jakieś pytania to służę pomocą. Jest to mniej więcej szablon aplikacji. Na najbliższym TRUGu (w październiku) będę mówił o migracji właśnie Sinatry na Rodę, więc wszystkich chętnych zapraszamy na TRUGa, a dla tych co nie będą mogli pewnie pojawi się video z prezentacji.

2 Likes

dzięki za odpowiedzi Panowie, postawię na Roda :wink: podzielę się swoimi odczuciami w tym wątku jak tylko pojawią się u mnie jakiekolwiek odczucia w tym temacie - mam nadzieję, że pozytywne :wink:

1 Like