čtvrtek 12. února 2009

Michaelův dokument o HTML5: má být závazný či nikoliv?

Zaměstnanec W3C, Michael Smith, nedávno publikoval dokument HTML 5: The Markup Language, který detailně popisuje značkovací jazyk HTML5.

Strhla se okolo něj poměrně velká debata. Má se jednat o oficiální specifikaci nebo jen o pomocný dokument? Celou situaci poměrně detailně rozebírá Arun Ranganathan.

Proč vznikly okolo takové zdánlivé maličkosti tak velké dohady se pouze domnívám. Pokud by byl tento dokument závazný, pak si mohla být celá specifikace HTML5 rozdělena na více dokumentů (a další dokumenty by mohl mít pod kontrolou někdo jiný než Ian Hickson). Některí to chtějí, jiní nikoliv.

Zástupci Mozilly a Safari se oficiálně vyjádřili, aby se nic neměnilo a tím jediným závazným dokumentem zůstala stávající specifikace HTML5.

Pokud si teď říkáte, že příprava standardů musí být občas pěkné hašteření, tak vězte, že rozhodně ano. Jak ostatně napovídá dnešní rozhovor Příprava specifikací je boj, který jsem pro Zdroják vedl s Jirkou Koskem (invited expertem pracovní skupiny pro HTML), a který se mimo jiné věnuje právě W3C a pracovní skupině pro HTML.

9 komentářů:

  1. Jestli správně chápu, co ten dokument obsahuje (jenom jsem po něm rychle hodil okem), tak ano, podle mě právě takovýto dokument měl být tím stěžejním z celé specifikace, protože popravdě řečeno právě toto je to, co drtivou většinu lidí zajímá. Vedle něj pak mohl vzniknout druhý dokument popisující DOM ke jmenovaným záležitostem a třetí dokument popisující některé konkrétní algoritmy z implementačního hlediska (což zajímá výrobce prohlížečů -- kolik z nás si ve volných chvílích implementuje vlastní prohlížeč?). Případně čtvrtý dokument popisující tuhleto a pátý dokument popisující tamhleto, je-li to potřeba.
    Ale ta celková monstrózní specifikace, co ji Ian píše, a kde aby mezi nejmenšími detaily člověk celkové myšlenky nebo zásadní věci hledal s lupou v ruce, byl podle mě od začátku dost špatnej nápad (ale to už se opakuju).

    kkl2401

    OdpovědětVymazat
  2. "právě toto je to, co drtivou většinu lidí zajímá"

    To je lichý argument. Specifikace jsou určeny pro implementátory, nikoliv pro běžné lidi (ano, ti ji také budou ze zvědavosti číst, ale nejsou to čtenáři, pro které se specifikace "optimalizuji"). Standard má být hlavně jasný, to je prostě norma nikoliv učebnice webdesignerů.

    Rozdělení specifikace na značkování a DOM je samozřejmě jedním z možných přístupů, proti tomu nic nemám, ale tebou uvedený argument je prostě neplatný.

    OdpovědětVymazat
  3. No to se asi neshodneme. Když čtu API dokumentaci Javy (Ruby, manuálové stránky C funkcí, unixových programů, každý nechť si dosadí, co je mu blízké), tak mě to taky zajímá na úrovni toho, že mi někdo garantuje nějaké chování (existuje metoda, tohle se jí předá, tohle ona způsobí, tohle vrátí), ale nikoliv už konkrétní implementace (za předpokladu, že implementace je korektní, tedy odpovídá dokumentaci). Těžko mi budeš tvrdit, že jediný, kdo čte tuhle dokumentaci, jsou lidé, kteří Javu (Ruby, C knihovny, ...) implementují. Totéž platí pro HTML, mě zajímá API, zajímá mě nějaké rozhraní, nezajímá mě (přesněji řečeno neměla by mě nutně zajímat) implementace.

    Takže není pravda, že specifikace jsou určeny pro implementátory. Specifikací je více druhů a jsou různého zaměření. Problém HTML 5 je v tomto směru dvojí. Předně ten, že nemůže existovat _pouze_ specifikace pro implementátory, nutně musí existovat něco pro "obyčejné lidi" (uživatele toho jazyka). Za druhé ten, že mi přijde, že Ian chvílema vlastně neví, jaký druh specifikace píše (což pravděpodobně souvisí s prvním bodem). Kdyby jasně od začátku bylo deklarováno "toto není pro normální lidi, nečtěte to, počkejte na uživatelskou dokumentaci, toto je dokument pro implementátory", bylo by to jiné, ale nějak jsem si podobného prohlášení nevšiml.

    kkl2401

    OdpovědětVymazat
  4. Jenže dokumentace API Javy, manialove stranky atd., to vse je proste dokumentace, ktera vzika primarne pro vyvojare, kteri to budou pouzivat.

    To vse je proste neco jineho nez specifikace.

    OdpovědětVymazat
  5. To bohužel teda nemáš pravdu. Dokumentace API Javy (teď myšleno SE) je nedílnou součástí specifikace platformy Java Standard Edition, tak to prostě je.

    Každopádně pak se můžeme bavit o slovíčkách a řešit, co je specifikace a co není specifikace. Takže já to přeformuluju. Můj názor je ten, že musí vzniknout dokument popisující pouze jazyk (i když ono co je to to pouze), tedy jeho syntax a jeho sémantiku, který nebude řešit jeho implementaci. (Stejně jako existuje řada dokumentů popisuje řadu jiných formálních jazyků a neřeší jejich implementaci.) Vzhledem k tomu, že se jedná o HTML, tak je nezbytné (dle mého názoru), aby tento byl normativní (v tom smylu, jak W3C dokumenty používají slovo "normative") a aby prošel klasickým systémem W3C schvalování, a tedy se nakonec doufejme stal W3C Recommendation.

    Když vedle něj bude existovat jiný dokument řešící implementaci, budiž, klidně se na něj ten výše zmíněný může často a bohatě odkazovat, že podrobnosti implementace tohoto jevu jsou popsány vedle, atd.

    kkl2401

    OdpovědětVymazat
  6. Jenže, co by se z pohledu implementátorů v případě vzniku dvou normativních dokumentů změnilo?

    Pro uživatele jazyka takový dokument určitě vznikne, už od začátku si v HTMLWG přislíbili, že vedle specifikace vydají nějaké texty a tutoriály pro webdesignery. Ale nemusí to být oficiální standard napsaný pro webdsignery, v tom prostě nevidím smysl.

    OdpovědětVymazat
  7. V tom se právě lišíme, já v tom vidím smysl naprosto zásadní. :-) Z pohledu implementátorů by se v případě vzniku dvou normativních dokumentů nezměnilo vůbec nic, to já přece nechci. Zato by se hodně změnilo z hlediska uživatelů, což je to, o čem celou dobu mluvím. Každopádně texty a tutoriály jsou hezké věci, ale podle mě je nutné, aby bylo něco, co má (bude mít) status W3C Recommendation, a přesto to nebude dokument, který má rozumný smysl číst jenom pro implementátory. Ostatně by to bylo dost neobvyklé -- většina současných standardů W3C (aspoň teda těch, co jsem měl příležitost číst) je určena právě převážně uživatelům.

    kkl2401

    OdpovědětVymazat
  8. Stále vůbec nerozumím tomu, jaký má pro mne jako pro uživatele smysl, aby tutorial, který čtu, měl nějaký status Recommendation. To je to poslední, co mě zajímá. Mě stačí, že je to tutorial ke specifikaci, která má status Recommendation.

    Jinak nevěřím tomu, že většina W3C standardů je určena uživatelům (to že je někteří čtou neznamená, že pro ně byly primárně vytvořeny).

    OdpovědětVymazat

Poznámka: Komentáře mohou přidávat pouze členové tohoto blogu.