Jako reakce na vyhrocenou situaci kolem Javy se objevily názory, že Microsoft dnes již Javu nepotřebuje -- její funkce může přece nahradit dynamické HTML. Proč s tímto názorem nemohu souhlasit, se pokusím vysvětlit v následujících odstavcích.
Dynamické HTML umožňuje vytvářet interaktivní stránky. To je možná důvod, proč je porovnáváno s Javou -- pomocí Java-apletů vložených stránky můžeme dosáhnout podobných efektů. Nesmíme však zapomenout, že Java je mnohem více. V Javě lze psát zcela samostatné plnohodnotné aplikace, které ke svému běhu nepotřebují prohlížeč. S uživatelem komunikují pomocí dialogových oken, která si otevírají přímo v grafickém rozhraní hostitelského systému. Aplikace v Javě jsou samozřejmě zcela přenositelné mezi různými platformami. Stejná aplikace může bez úprav běžet ve Windows, MacOS nebo v Unixu.
Porovnejme však nejdůležitější rysy Javy a dynamického HTML. Programy v Javě musí být před svým používáním zkompilovány do binární podoby (tzv. byte-code), který je přenositelný mezi platformami. Tento byte-code lze velice snadno převést přímo do strojového kódu libovolného procesoru -- o tento proces stará virtuální stroj Javy. Oproti tomu se v dynamickém HTML používají skripty, které jsou interpretované -- prohlížeč je načte spolu se stránkou, louská jeden příkaz za druhým a provádí je. Interpretovaný kód je samozřejmě mnohem pomalejší než kód předem zkompilovaný. Z tohoto důvodu nejsou skripty vhodné pro použití při náročnějších výpočtech.
Tím, že je Java kompilovaná, přináší vývojářům další výhodu. Na Internetu stačí vystavit zkompilovanou verzi programu -- zdrojové texty programu zůstanou k dispozici pouze autorovi, který se nemusí bát zcizení své práce. Skripty používané v dynamickém HTML dorazí do prohlížeče vždy ve zdrojové podobě, takže není technický problém stáhnout si je a libovolné jejich části používat na svých stránkách.
V dalším porovnávání budeme předpokládat, že dynamické HTML používá jako skriptovací jazyk JavaScript (při použití VBScriptu by to nedopadlo o mnoho lépe).
JavaScript je objektově založený jazyk -- můžeme tedy používat předem vytvořené objekty. Nemůžeme si však vytvářet vlastní třídy a používat přitom dědičnost. Všechny tyto vlastnosti samozřejmě Java jako plnohodnotný objektově orientovaný jazyk nabízí.
Cílem tvůrců JavaScriptu bylo vytvořit jednoduchý a snadno použitelný jazyk. Z tohoto důvodu nemusíme u proměnných deklarovat jejich typ. To nám ušetří trochu práce, ale ve větších programech je slabá typová kontrola zdrojem častých chyb. Java oproti tomu při kompilaci kontroluje, zda jsou typy všech operandů navzájem kompatibilní.
Programy v Javě mají obecně mnohem větší možnosti ošetření chyb. V Javě lze používat velice flexibilní model výjimek, který umožňuje, aby aplikace sama napravila následky chyb vzniklých při jejím běhu. Možnosti detekce chyb jsou v JavaScriptu velmi omezené.
Java umožňuje pracovat se soubory libovolného typu. Implementace JavaScriptu v IE 4.0 (JScript) nabízí pouze poněkud nestandardní způsob pro práci s textovými soubory. Mnohem větší nedostatek však je, že v běžných skriptovacích jazycích nelze vytvářet komunikační spojení s ostatními počítači a aplikacemi pomocí protokolu TCP/IP. V Javě lze přitom psát jak klienty tak servery, které používají libovolný aplikační protokol.
Možnosti síťové komunikace jsou v Javě využity i jinde. Standardní databázové rozhraní JDBC umožňuje přístup k SQL-databázím právě přes Internet.
Jak vidíme, dynamické HTML nedopadlo zrovna růžově. To však neznamená, že se jedná o špatnou technologii. Pouze jsme porovnávali neporovnatelné. Dynamické HTML i Java mají své vlastní oblasti použití, které se jen nepatrně překrývají. Budoucnost tedy nabízí dostatek prostoru pro obě dvě technologie.
Zajímavé je, že konsorcium W3C v definici objektového modelu dokumentu (DOM) myslelo i na Javu, a tak brzy půjde k dynamické změně obsahu stránky používat místo skriptovacích jazyků přímo Java-aplety.
Nám nezbývá než doufat, že pánové z Redmondu dostanou rozum a Javu bude nadále podporovat i Microsoft. Budou však muset překousnout, že zase něco není po jejich a že musí dodržovat standard jazyka Java tak, jak ho Sun zveřejnil. Snad to pochopí, protože cílem Sunu je, aby Java byla schválena jako ISO standard. Stala by se tak jedním z prvních jazyků, jehož norma by byla standardem s takto vysokou autoritou. Java je výborná technologie, a bylo by škoda, kdyby padla za obět bezhlavému prosazování Windows do všech koutů zeměkoule.
Úvod | Kaskádové styly | JavaScript | Ukázky | Přehled vlastností stylů