• RSS
  • Domů na Webylon
  • Kritika W3C
  • Historie
  • K.11
  • Čaroděj z Nombasu

    6. srpna 2004

    Dynamické HTML se řadí mezi nejmocnější technologie, které se mezi prohlížeči ujaly. Její jednotlivé implementace bývaly však často vzájemně naprosto nekompatibilní.

    V roce 1992 vznikla společnost Nombas. Brzy po svém založení vyvinula interpretovanou zjednodušenou odvozeninu kompilovaného jazyka C zvanou CEnvi.

    O tři roky později vytvořil náhodou něco podobného i Brendan Eich z Netscape Communications. Dostal geniální nápad: doplnit svůj prohlížeč o jednoduché skriptovací rozhraní. Svoji odvozeninu C nazval nejprve Mocha, později byla přejmenována na LiveScript. Z marketingových důvodů ani tento název nevydržel.

    Ve srovnání s dnešními možnostmi byl JavaScript v Netscapu 2.0 takřka bezmocný. Na jednoduché úkony ovšem stačil, proto si našel velké množství příznivců.

    Cílevědomý Microsoft následující rok vydal Explorer 3.0 s vlastní implementací JavaScriptu. Na kompatibilitu s Netscapem tenkrát kladl velký důraz.

    Prohlížeč jevištěm

    Explorer 4.0 dal význam pojmu „dynamické HTML“. Svěřil webmasterům absolutní nadvládu nad stránkou. Každá značka, každý atribut i každý styl bylo možné skriptem upravit. Tento inovátorský přístup si získal takovou oblibu, že spousta webmasterů úplně zapomněla na Netscape.

    Uživatelé Netscapu trpěli. Netscape trpěl. Paradoxně díky jazyku, se kterým přišel první.

    Co dělalo tou dobou konsorcium? Paralelně s vydáním Exploreru 4.0 započalo práce na specifikaci objektového modelu dokumentu (DOM). Až o rok později se DOM úrovně 1 stal W3C doporučením. Srovnáte-li DOM a implementaci DHTML v Exploreru 4.0, zjistíte, že nabízí vlastně totéž, ne-li méně. Nekompatibilně. Důvod? Přeci vyšší spolupráceschopnost!

    Specifikace DOM také trpí nedostatkem specifičnosti. Je možné napsat dva prohlížeče, jejichž objektové modely nebudou vůbec kompatibilní, ale stále odpovídající doporučení. Dynamické HTML podle konsorcia rovněž postrádá jakoukoliv dynamičnost: široce podporované a užívané metody window.setTimeout a window.setInterval v něm nenajdete.

    Tvůrci minoritních prohlížečů byly monopolem donuceni založit svůj marketing na podpoře W3C. Proto se na původní DHTML dívají s opovržením a vyzdvihují kvality DOMu. Stále jim ovšem jde především o správné zobrazení každé stránky. Proto pomalu a nenápadně implementují i ty staré „ošklivé“ DHTML techniky.

    Před pár týdny začala Mozilla podporovat document.all. Podpora je nedetekovatelná a to především z toho důvodu, že tuto metodu používají některé starší stránky pouze k rozlišení prohlížeče. S tímto nápadem přišel výše zmíněný Brendan Eich. V Opeře 7.0 je document.all taktéž podporován.

    Slavná proprietální vymoženost Exploreru, vlastnost innerHTML, se také těší široké podpoře. Při správném použití je dokonce několikanásobně rychlejší než ekvivalentní metody DOM.

    Standard s respektem

    Syntaxe JavaScriptu (bez návaznosti na DOM) má svůj vlastní standard. Je jím ISO 16262, alias ECMA-262, specifikace jazyka ECMAScript. Její třetí vydání pochází z roku 1999.

    Na rozdíl od DOMu brala tato norma v úvahu historický vývoj a tvůrcům zbytečně neházela klacky pod nohy. Mozilla, Opera i Explorer ji už dávno plně podporují. Dokonce i Nombas se se svojí technologií ScriptEase přizpůsobil.

    Druhá věta tohoto článku je psána v minulém čase. To proto, že Explorer doporučení DOM téměř okamžitě implementoval, aniž by narušil funkčnost již existujících stránek. Dnes už JavaScript ve spojení s (nejen) objektovým modelem dokumentu umožňuje vytvářet kvalitní a rychlé webové aplikace funkční v dostatečném množství prohlížečů.

    Budoucnost

    V současnosti je rozpracované čtvrté vydání ECMAScriptu. Mezi novinky patří především datové typy a přehlednější práce s objekty. Mozilla už s tímto vývojem počítá v experimentálním JavaScriptu 2.0. Microsoft ve svém JScriptu.NET také.

    Bert Bos (W3C):

    HTML je opět v ohrožení. JavaScript je vůbec nejhorší vynález. [...] Představte si, že bychom začli úplně od začátku, nechali složitých 20 % na Javě a do dvou let definovali vlastní jazyk a za další dva roky verzi 2. Doufáme, že toho dosáhneme.

    Zdroj: lists.w3.org/.../public-webapps-cdf-discuss/.../2004jun01.html

    Konsorcium má zřejmě jiné představy. Další reinvence, další úkrok stranou, další problémy.