O komplexnosti
Je opravdu Java tak neefektivní pro tvorbu webových aplikací a nebo je to jenom mýtus? Jednou z nevýhod Javy, která bývá často vznášena, je přílišná komplexnost. Mezi další nevýhody patří hosting a deployment. Zpět k té komplexnosti Javy pro webové aplikace. Položme si otázku, co za tou komplexností vězí.
Kdy jsem se o tom bavil s Vlastou Vávrů, kerý může porovnávat svět Javy i PHP, tak z naší diskuse vyplynulo, a nebo jsem si to alespoň tak přebral, že tvorba webových aplikací v Jave vyžaduje mnohem větší znalosti. Skončili jsme u oddělení vrstev, řízení transakcí, optimistickém zamykání dat a nebo ORM frameworků. Klíčové je položit si otázku, jestli všechny tyto technologie a postupy musíte použít.
V Java světě vám každý druhý řekne, že samozřejmě ano. Máme o tom spoustu informací, takže funguje něco jako všeobecné povědomí. Povědomí: “Chceš dělat webovou aplikaci? Na to potřebuješ technologii X a transakce a ORM řešené Y atd.”. Ve skutečnosti stačí obyčejné JSP a Servlety a standardní API Javy. Pokud si to připustíme a budeme ignorovat infrastrukturní problémy, které jsem zmínil na začátku článku, pak je komplexnost zvoleného řešení (JSP, Servlety, J2SE API) srovnatelná s PHP.
Jenže v zápětí vám každý zkušenější webový vývojář omlátí o hlavu, že je potřeba oddělit data od jejich prezentace. Takže na jakékoliv platformě skončíte u nějakého MVC frameworku. Tím je ovšem přidaná další úroveň komplexnosti. A takhle se v tom vrstvení komplexnosti dá pokračovat dále. Klíčové je uvědomit si, jaká úroveň komplexnosti je pro danou aplikaci ještě akceptovatelná a tu nepřekročit.
Nemůžeme jednoduše říci, že stavět webové aplikace nad RoR je jednoduší než v Jave a nebo v PHP. Vždycky totiž musíme vzít v úvahu míru komplexnosti, kterou vyžaduje daná aplikace. Na druhou stranu si myslím, že některé webové aplikace tvořené v Jave si vlastní komplexnost zvyšují uměle a jsou předesignované. Ale to podle mého soudu není důvod považovat obecně Javu pro tvorbu webových aplikací jako příliš složitou a komplexní.
Související články
Související epizody CZ Podcastu
- #217 · Ivo Lukačovič
O Windy, JavaScriptu a budování firem.
- #3 · Java 6 SE, Vývoj webových aplikací
Dagi a Filemon o novinkách v Javě 6 a webových frameworcích.
- #1 · Vývojová prostředí v Javě
První díl CZ Podcastu se věnuje vývojovým prostředím pro Javu.