pátek 26. prosince 2008

Mé alternativní zápisky

Po určité době používání služby Twitter ji považuji jako vhodný doplněk k tomuto blogu. Ostatně integrace je již nějaký ten pátek vidět v pravém sloupci viz obrázek. Síla Twitteru je v tom, že můžu velice jednoduše publikovat zajímavé postřehy a věci co právě řeším. Tedy sdělení, která svým obsahem nevydají na plnohodnotný spot, alespoň v první fázi, ale zase je škoda, aby někde zapadly. Rozměr sociální sítě (zdravím Budíka) dodává Twitteru to, že zároveň můžu podobné zápisky sledovat u dalších lidí. Takže vidím co zaujalo či co řeší Filemon, Borůvek, NkD, Satai a další zajímaví lidé.

Pokud chcete tyto moje alternativní zápisky sledovat a jste již a nebo se chystáte na Twitter, pak můj nickname je _dagi (to podtržítko tam skutečně je). Druhou možností je zmíněný scriplet vložený do pravého pruhu.

čtvrtek 25. prosince 2008

Cosi nevyřešeného nad Servlet specifikací

Asi nejsem sám, kdo považuje Servlet specifikaci jako nejzásadnější věc v JEE oblasti. Je to již celkem, co prosákly první informace o připravované verzi 3.0 standardizované pod JSR 315. Dnes jsem na InfoQ našel článek odkazující na debatu kolem vydaného Public Review (odkazuje stav specifikace) a nedobrý pocit se mě zmocnil.

Již mnohokrát se ukázalo, že není nic horšího než složitá specifikace postavená na předpokladech a tezích úzké skupiny lidí bez dostatečného reálného podkladu, EJB budiž mementem. Věřil jsem, že tohle období máme za sebou. V expertních skupinách (lidé zodpovědní za doručení specifikace) totiž začali zasedat lidé, kteří měli s Enterprise Javou reálné zkušenosti. Jedním z těchto garantů pro mě je Greg Wilkins, autor servlet kontejneru Jetty.

Proto mě nepříjemně zamrazilo, když tato mnou respektovaná osoba napíše v reakci Public review JSR 315 následující řádky:

JSR-315 has produced a Public Review (PR) of the servlet 3.0 specification, which unfortunately is a poor document and the product of a discordant expert group (EG) working within a flawed process.

Greg Wilkins dále velice správně a výstižně poukazuje na další fakt:

The API decided by JSR-315 will be with us for many years to come and will affect the evolution of java web applications and potentially the rest of our programming careers.

Je to přesně tak, a každý kdo kdy pracoval s JEE na tento fakt musí poukázat. Servlet API je tak zásadním API, že jakékoliv hazardování při jeho rozšiřování může mít dalekosáhlé následky. Wilkins dále poukazuje na další problémy jako vedlejší či pomalý deployment a nebo nejasné pořadí konfigurace v deployment descriptoru webové aplikace.

Jeho postřehy pro mě mají daleko větší váhu než kód kdesi ve vývojové větvi serveru GlassFish. Při vší úctě k odpovědím, které poskytnul spec lead Rajiv Mordani, to ve mě vyvolává obavy. Budeme mít nafouknutější specifikaci, která bude plná vágních formulací? Usnadní nám to opravdu život? Proč se snaží tuto specifikaci tak rychle dokončit, tlačí je snad rámec JEE 6?

Pokud specifikace obsahuje takové otazníky, tak je dle mého názoru lepší držet se hesla, že "méně je někdy více", už jenom například z důvodů zpětné kompatibility. Specifikace se dá rozšířit vždy, ale něco z ní vyškrtnout je problém. Ač si co do možností myslím o JPA specifikaci své, tak se jí musí nechat, že nebyla přehnaně ambiciózní, prakticky se inspirovala v Hibernate a nekonal se tak "pokus na vývojářích". Servlet 3.0 by se měla vydat stejnou cestou, jedná se totiž o tak zásadní věc, že jakýkoliv experiment může mít dalekosáhlé následky.

Na závěr přidávám jeden z komentářů na TheServerSide:

The Java community should realize that this is one of the few ways we can really "break" Java.

Many other blunders, such as EJB, have not been very important. The usage of many packages was specialized and restricted anyway. Servlets, though, are the common starting point for Web development in Java. At present they are easy to understand and implement. If you screw up servlets and make them hard to understand or implement, you'll lose the Java development community much faster than you might think is possible.