┌vod KaskßdovΘ styly JavaScript Ukßzky © Ji°φ Kosek
DynamickΘ HTML

DynamickΘ HTML versus Java

Microsoft mß nynφ se Sunem spory ohledn∞ licence Javy a m∙₧e se stßt, ₧e by Microsoft licenci ztratil. To by m∞lo pom∞rn∞ velkΘ nßsledky -- jednak by se z Internet Exploreru vytratila podpora Javy a jednak by musel Microsoft p°estat s prodejem v²vojovΘho prost°edφ Visual J++.

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, aby byla Ü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∙


© Copyright 1998 Ji°φ Kosek, All Rights Reserved.
Strßnka obsahuje pln² text Φlßnku otiÜt∞nΘho v t²denφku Computerworld dne 30. ledna 1998 (CW5/98).
Strßnku p°ipravil Ji°φ Kosek, xkosj06@vse.cz
Poslednφ modifikace: 24-01-98