středa 29. září 2010

Kdo s čím zachází, s tím také schází

Lukáš Křečan nedávno napsal o tom co ho štve na Jave. Já bych ho trošku podpořil, protože občas mám pocit, jako bych roztlačoval parní lokomotivu. V poslední době jsem rozcházel několik Java projektů pro pár vývojářů, kteří chtěli nastartovat webový vývoj a musel jsem se tedy hluboce stydět. Přestože mi Maven říká pane, tak rozběhnout plnohodnotný projekt včetně setupu IDE mi zabralo skoro půl dne.

Nevím proč, ale od jisté doby nabízí Maven snad stopadesát archetypu (kostra aplikace), bohužel skoro všechny jsou víceméně nepoužitelné. Stejně vždycky skončím u ručního tunnningu. Počínaje nastavením kompilátoru na Javu 1.6, přes upgrade jUNit na 4.8.1 a konče nastavením SLF4J závislostí pro logování a vyloučením Commons logging.

Další pohromou jsou vývojové nástroje. Rozběhnout Maven v Eclipse včetně WTP je magie a to nepodotýkám z toho důvodu, abych vám nabídl svoje služby. Navíc v týmu se najdou vždycky nějaké černé ovce, které používají NetBeans a nebo IntelliJ IDEA.

Když tuhle lokomotivu konečně roztlačíte, máte z toho nevýslovnou radost, ale zároveň jistou pachuť na jazyku. Čím dál tím víc jsem přesvědčený, že tahle fragmentace Javy a jejího ekosystému je ukrutná dvousečná zbraň. V Jave neexistuje ani na ty nejjednodušší otázky jediná odpověď. Chcete příklad, tak si položte otázky Jaké IDE, co na ukládání, jaký webový framework, jaký server, jaký buildovací nástroj. Na každou z nich může napsat v odpověď celý elaborát.

Na jednu stranu máte v rukách úžasnou volnost, ale na druhou nesmírně heterogenní prostředí, na kterém si můžete pěkně rozbít hubu. Jinými slovy nejsilnější zbraň Javy je zároveň její nejslabší stránkou.