21 kwietnia 2009

Który szkielet aplikacyjny polecasz?

Dostałem dzisiaj wiadomość z grupy J Architects na LinkedIn o głosowaniu "Which one of the following is the best application framework". Jak można się domyśleć, moim wybranym na chwilę obecną jest Grails, więc nie miałem żadnych wątpliwości, na co postawić. Na razie Grails przoduje z 33% odpowiedzi, przed JBoss Seam i Wicket.

Poza Grails w szranki i konkury stanęli: JBoss Seam, Rails, Wicket i Tapestry. Sądzę, że wielu z głosujących nie ma bladego pojęcia, co można, a czego nie w pozostałych poza tym wskazanym (ja również należę do tej grupy), a i rozkład procentowy mógłby być inny w zależności od kryteriów (a może kryterii?!). Nie mniej jednak, dla mnie to był łatwy wybór, bo jestem na bieżąco z Grails i faktycznie odświeżył moje spojrzenie na tworzenie aplikacji webowych. Coś mnie tknęło (przez baaaardzo krótki moment), aby zagłosować na Wicketa, ale tak szybko, jak przyszło, szybko sobie poszło. Bardzo mi się podobał, ale podobnie jak z Grails, mam na jego temat bardzo powierzchowną wiedzę na bazie kilku domowych przykładów typu "Hello World" i tylko jedną...przeczytaną książkę. W przypadku Grails chociaż liczba książek jest większa (już dwie, a czekają kolejne!) i Groovy nie pozostawia złudzeń, co lubić. Pozostaje jeszcze JBoss Seam, który podobał mi się początkowo, bo łączył EJB3 i JSF, którymi się "upajałem" swego czasu, ale teraz?! Chyba nie robi na mnie wrażenia. W zasadzie jest powieleniem tego, co mam w Grails. Czasy pewnego zainteresowania JBoss Seam mam za sobą i teraz uważam, że EJB3+JSF są dobre jedynie dlatego, że są...specyfikacjami. Są jednak ciekawsze (lepsze?) rozwiązania, jak chociażby Groovy i wszechobecne DSLe w Grails, a nawet Wicket. JBoss Seam zawsze wydawał mi się jakiś przekombinowany i stosunkowo trudny w poznaniu (no pun intended! :)).

W głosowaniu znajdziemy również Rails i Tapestry, i jakkolwiek książka o Tapestry czeka na mnie, i potencjalnie będę miał na nią chęć, to o Rails nie mogę już tego powiedzieć. Zresztą Tapestry to dla wielu Wicket, a i nie inaczej jest z Grails i Rails. Jedynym powodem, dla którego rozważam zapoznanie się z Rails jest sam język Ruby (dopiero teraz zauważyłem, jak niedaleko jest między Grails a Rails - nawet nazwy języków są zbliżone - Ruby i Groovy. Ciekawe komu odbije się to czkawką?). Coraz częściej dochodzą mnie głosy, że nie ma co poświęcać czasu Railsom, skoro są Grailsy i że to dla ludzi ze świata PHP (chociaż Chlebik może sugerować inne myślenie migrując na Grailsy). Argument poznania kolejnego języka - Ruby - jest mimo wszystko zachęcający. W tym właśnie klimacie spoglądam na Scalę. Pisze się o nim (niej?) to tu, to tam i nawet pojawił się w komentarzu do głosowania jako...Lift (szkielet webowy w Scali). Chyba tylko nawał oczekujących mnie książek nie pozwala mi zająć się nim. Niech czeka cierpliwie (jak wielu klientów, którzy są skłonni zapłacić dobrze za dobrze wykonany projekt, a ostatecznie dostają jedynie dobre składowe z całością przypominającą Goliata - ufam, że moi tego nie doświadczają :)). Kiedy wczoraj przeglądałem prezentację integracji MS Excel i GlassFisha, a właściwie środowiska .Net i Java EE za pomocą WSIT z uwzględnieniem WS-Security (patrz prezentacja Aruna Gupty Excel using WSIT - Metro and .NET interoperability sample), dopiero otworzyłem oczy, jakie to cuda można wyczyniać znając różne rozwiązania, dobrane do problemu. To bodaj najstarszy problem informatyczny, aby dobierać właściwe narzędzia do problemu. Podoba mi się stwierdzenie "Kiedy masz pod ręką tylko młotek, wszystko dookoła wygląda jak gwóźdź". Ciekawe kto jest autorem tego powiedzenia, które tak trafnie oddaje stosunkowo powszechne podejście do rozwiązywania problemów. Przy tylu dostępnych szkieletach aplikacyjnych, aż dziw bierze, że udaje nam się wdrożyć tę maksymę w życie (a może właśnie, dlatego, że jest ich tak wiele, tak wielu się udaje?!). Przy okazji przeszukiwania Sieci w poszukiwaniu odpowiedzi, kto jest autorem trafiłem na bloga Nie tylko młotek - zapowiada się interesująco, bo na początek idzie Haskell i...Ruby!). O problemie młotka pisał ostatnio również i Sławek Sobótka na swoim blogu Holistyczna inżynieria oprogramowania - chociażby we wpisie DAO. Wiosenne porządki zostawiają odciski na rękach (po nieumiejętnym trzymaniu młotka) i dają się we znaki, co?!

Zainteresowanych głosowaniem zapraszam do mojego - "Który szkielet aplikacyjny polecasz?". Znajdziesz go na moim blogu w panelu po prawej. Przy 800 regularnych czytelnikach powinno się choć trochę wysondować polskie spojrzenie na temat. Do głosowania wchodzą wszystkie wymienione i kilka innych szkieletów aplikacyjnych, które przyszły mi do głowy (umieściłem nawet smalltalkowy Seaside, którym byłbym zainteresowany, gdyby ktoś tylko zechciał mi to wyłożyć - może temat na bloga?). Dodałem również kategorię "Inne", aby tam zgromadzić wiedzę na temat wykorzystania alternatywnych rozwiązań, być może wciąż niszowych, ale przyszłościowych. Pozwólcie mi poznać Wasze gusta, aby samemu zasmakować najlepszego i...oferować klientom jako własne za niewielką opłatą! ;-)