čtvrtek 21. září 2006

Problémy standardů - když méně je vlastně více

V poslední době pociťuji malou deziluzi z všech těch standardů, které v Jave máme a říkám si jestli model jednoho middleware dodavatele ala Microsoft a DOT.NET není lepší. Nemám nic proti standardům, ba naopak mám je rád. Ale i standard má několik úskalí, na které je třeba brát ohled.

Pokud není standard dostatečně specifický, tedy obsahuje formulace, které si lze různě vyložit případně obsahuje prostor pro různé rozšíření, vsaďte si na to, že si jej každý implementátor vyloží po svém. Úplně klasickým překladem budiž specifické deployment descriptroy enterprise aplikací v závislosti na aplikačním server.

Standard je vždy ve vleku doby. Specifikace standardu vždy zabere nějakou dobu, pokud je ta doba relativně dlouhá, snižuje se vlastní hodnota standardu, protože evoluce posune vývoj jinam. Máme zde specifikaci Java Persistence API, určitě je povzbuzující, že byla inspirována úspěšným proprietárním řešením Hibernate. Jenže Hibernate je v této chvíli už o dva kroky dále.

Obecně bych řekl, že prostředí kde nevládne jeden middleware dodavatel nahrává využití proprietárních řešení. Samozřejmě to nelze brát jako dogma, ale v případě různých oblastí J2EE je třeba si dávat na různě nuance pozor. Příklad?

Budete chtít použít ORM řešení a máte na výběr mezi JPA a Hibernate. Srdce říká použijte standard ve formě JPA, je tu obrovská výhoda přenositelnosti mezi jednotlivými aplikačními servery. Jenže zkušenost říká, vždycky se najde nějaký problém, který posílá onu teorii přenositelnosti do věčných lovišť. Navíc už teď mohu použít v případě Hibernate funkce, které standard JPA nepokrývá, ale mě se náramně hodí do krámu.

Jestli tedy bude v případě JPA nějaká evoluce, tak jedině v případě proprietárních rozšíření jednotlivých implementátorů. Tím pádem, pokud takové rozšíření použijete, dostanete se do stejného stavu, jako kdyby jste hned na začátku použili Hibernate tj. závislost na něčem proprietárním.

Mám rád standardy, ale někdy je lepší zvážit všechna pro a proti než je slepě následovat...