pátek 29. února 2008

Do pranice: komponentové a nebo požadavkem řízené webové frameworky

Ve středu jsem si v rámci CZJUGu náramně užil přednášku Petra Ferschmanna (záznam) o frameworku JBoss Seam. Během poslechu přednášky, kdy Petr mluvil o problémech JSF ve mě začal hloubat červíček pochybnosti, jestli jsou komponentově řízené web frameworky tou správnou cestou. Petr se teď určitě otáčí kolem do kola ve své ředitelské sesli a chytá se za hlavu, protože nám důrazně kladl na srdce, že problémy s JSF sice měli, ale nakonec, že to nebyly problémy a že to byly vlastnosti JSF.

Jedním z problémů, o kterých jsme se bavili, bylo mnohonásobné volání gettrů v různých fázích životního cyklu JSF požadavku. Petr mě nakonec přesvědčil, že ani tak není problém s komponentovým přístupem, jako spíše s tím, jak jsou JSF naimplementovány či navrženy. Ve vzduchu tak z;staly viset pouze dva otazníky, kam serializovat viewstate a jak je to s výpočetní náročností vystavení komponentového stromu. Já osobně jsem vždy používal požadavkem nebo chceteli příkazem (command base) řízené frameworky jako Struts a nebo Spring MVC.

Když to vezmu obecně, tak komponentově řízené frameworky umožňují a nebo se o to alespoň snaží vývojáře odstínit od toho, že tam někde venku je HTTP protokol. Jsou tedy o patro výše nad požadavkem řízenými frameworky z pohledu abstrakce, kterou nabízejí. Otázkou zůstává jestli je vůbec možné zakrýt paradigma žádosti/odpovědi a pokud ano, jestli tím výrazně neutrpí například rychlost zpracování požadavku a nebo nestoupne přespříliš komplexnost použitého řešení. Stejně tak je otázkou jestli jsou JSF se svými problémy vhodným zástupcem komponentového frameworku a neměli bychom šáhnout po něčem jiném a nebo minimálně počkat na JSF 2.0.

S trochou nadsázky bych řekl, že je v Česku snazší zvolit prezidenta než čekat konsensus javovských vývojářů na tom, který webový framework zvolit ;-).

pondělí 25. února 2008

Hledám další velkou věc

Taky hledáte další velkou věc, do které stojí za to investovat čas? Hodně lidí se v poslední době svezlo a nebo veze na vlně Ruby a Ruby on Rails. Ač jsem měl k obojímu určité výhrady, tak jsem na druhou stranu nemohl upřít inovaci, které Ruby či Ruby on Rails přineslo. Na Ruby mi vadí syntaxe a některé zkazky (zdravím Zeda Shawa) o RoR ve mě vyvolaly menší zděšení. Tak či onak, s klidem v duši mohu prohlásit, že pro kované Javisty existuje řešení, jsem dalek toho říci lepší, které může směle konkurovat Ruby a Ruby on Rails. Vítej Groovy a Grails.

Groovy je dynamický jazyk, někdy též označovaný jako skriptovací, postavený nad JVM, který má některé syntaktické rysy Javy, ale taky plno syntaktických cukrátek jako přímý zápis map nebo polí, type inference, closures atd. Groovy má podobně jako Java sadu standardních knihoven GDK, které nabízejí základní API, které v mnoha ohledech kopíruje JDK, ale jeho design netrpí tolik neduhy času. Velkou výhodou Groovy je to, že zdrojové kódy mohou být přímo přeloženy do byte kódu a z pohledu JVM se jedná o klasickou Java aplikaci. Navíc v Groovy lze libovolně používat jakékoliv javovské API.

Pokud vás moje povídání o Groovy nenavnadilo, pak určitě věnujte pozornost této výborné prezentaci, která vám poodhalí Groovy nejen z pohledu java vývojáře.

Grails jsou webovým frameworkem postaveným nad Spring a Hibernatem, Antem a dalšími. Všechny tyto frameworky jsou zabaleny a učesány Groovy fasádou, která dává pocit opravdu hbitého developmentu. Ač nejsem znalec RoR, tak mi Grails přijdou jako snaha o totéž v bledě modrém s tím rozdílem, že vespod vše běží na vyzkoušených technologiích. Ještě přidávám k dobru, že na InfoQ je zdarma k dispozici kniha Getting Started with Grails.

Já už jsem svojí další velkou věc našel a co vy?