čtvrtek 7. října 2010

Nepoužívejte HTML5! Ještě ne! Prosí nás prý W3C

Používáte HTML5? Tak toho nechte. Aspoň prozatím. Na HTML5 je ještě brzy! Zhruba v tomto smyslu vyznívá včerejší rozhovor InfoWorldu s Philippem Le Hégaret z W3C. Ten citují další a další média a začíná se šířit internetem. A spolu s ním se šíří nepochopení. Co nám to ten Philippe z W3C chce vlastně říct? A proč? Zkusím to vysvětlil. Po lopatě.

Není to nic nového. V zásadě se jedná o odlišný pohled na dokončení specifikací mezi těmi, kdo specifikaci tvoří, a těmi, kdo ji používají. Vraťme se o tři roky zpátky, kdy autor HTML5 Ian Hickson prohlásil, že HTML5 dokončí někdy roku 2022.

Celý svět si tehdy ťukal na čelo. Za patnáct let? Opravdu to nebude dřív hotové?

Ian reagoval ve smyslu: Vy to začnete používat mnohem dřív, ale pro nás to bude hotové až okolo 2022. (Podrobněji viz Jak je to s termínem dokončení HTML5? z 2007)

Měl pravdu. Uplynuly tři roky (žádných patnáct!) a zdá se, že HTML5 opravdu začneme používat. Někdo letos, jiný možná za rok či dva, ale v zásadě se jedná o dnešní záležitost. (Na řadě webů ho spokojeně používáme už nějaký ten pátek a možná o tom ani nevíme.)

Z HTML5 se stal buzzword značící pokrok a firmy se předvádějí v jeho skloňování na svých prezentacích.

Realita se ovšem nezměnila. K dokončení HTML5 opravdu bude třeba ještě řada let (možná těch 10), podobně jako dosud není dokončené CSS2. (Překvapeni? Ono ale opravdu není!) V tom spočívá ono odlišné chápání dokončených specifikací. A z tohoto pohledu má Philippe z W3C pravdu, když upozorňuje, že HTML5 není ještě hotové, že není ještě dost ready.

A vadí to něčemu? Může nastat problém?

Popravdě může. Nemusí, ale může. Při takovém rychlém postupu vpřed bez koukání vlevo vpravo se může objevit menší či větší problém. Tím nejznámějším a nejrozsáhlejším problémem, který v minulosti přesně z tohoto důvodu nastal, byl rozdvojený box model.

Kdo děláte weby už pár let, vzpomínáte na odlišný box model Internet Exploreru a ostatních prohlížečů? Drobné nedopatření, za které jeden viní Microsoft, druhý W3C, ale pravdou je, že se jednalo o oběť rychlého pokroku. Tahle "drobná procesní chybka" pak dobrých deset let iritovala nějaký ten milion webových vývojářů.

Podobné chyby s obdobně velkým dopadem můžou vzniknout i dnes. A to je to, co se nám Philippe z W3C snaží říct.

Ne nadarmo se říká, že pokrok si žádá oběti. Naštěstí dnes už jsme si zvykli záplatovat podobné problémy různými frameworky. Ono komu by vadilo, kdyby existovalo třeba 5 různých nekompatibilních API k HTML5, když by mohl používat jeden JS framework, který za něj ty rozdíly vyřeší?

Čili dá se říct, že dnešní doba je připravena podobným problémům čelit lépe, než doba před nějakými 10 lety.

Proto nezbývá než Philippovi do W3C vzkázat, že děkujeme za upozornění, ale my to prostě risknem.

9 komentářů:

  1. Zajímalo by mě, čím to je, že ten vývoj trvá tak dlouho? Nevidím do toho do hloubky, ale jen vývoj návrhu 10 let?

    OdpovědětVymazat
  2. Ne, samotný návrh trvá jen pár let. Nejvíc času zabere asi interoperabilita mezi prohlížeči.

    Třeba jen takové napsání testů, které by ověřily správnou implementaci HTML5 v prohlížečích zabere několik let (je toho opravdu moc).

    To je ono odlišné chápání významu dokončení specifikace. W3C nekončí tím, že vydá dokument a skončí s tím: "tady to máte a dělejte si s tím, co chcete", ale až tím, že existují funkční a interoperabilní implementace v prohlížečích. Což je mnohem víc práce a taky větší odpovědnost.

    OdpovědětVymazat
  3. Mám pochybnosti, jestli nezaměňujete příčinu a následek. V normálním světě se nejdříve připraví specifikace a pak se podle ní implementuje. Podle mého názoru takto to bylo původně myšleno i W3C. Tedy specifikace je dokument a ten je hotový v okamžiku, kdy je vydán pod označením W3C Recommendation. To neznamená, že je bez chyb, ale že je to v nějakém stabilním stavu. Nevylučuje to samozřejmě vydání dalších revizí, ale je to verze, na které se v daný okamžik všichni zúčastnění shodli. A ta shoda je důležitá, to je to, co se celou dobu hledá.

    Praxe je samozřejmě jiná - příprava specifikace trvá dlouho, protože se o tom dohaduje moc stran. V důsledku toho se implementuje podle předběžné, nedokončené specifikace. Rozdíl je ten, že na této předběžné specifikaci se zatím všichni neshodli. Je tedy možné ji implementovat, ale je nutné si některé věci domyslet a je prostor si některé detaily vyřešit po svém. A to je příčina zmiňovaných webmasterských neštěstí.

    Tedy mi připadá zcestné tvrdit, že specifikace je hotová, až je implementovaná. Musí být nejdřív hotová, aby mohla být implementovaná. Ale je současně pravda, že až bude specifikace interoperabilně implementovaná, tak to bude nejspíše známka toho, že je hotová :-)

    OdpovědětVymazat
  4. Je to už poměrně dávno, co jsem tu psal, že nesmyslná implementace HTML5 před dokončením specifikace do prohlížečů může přinést problémy stejné, jako byl box model v IE. Argumentoval jsi, že se to nestane a hle teď už na to upozorňují i z W3C.

    Jsem původem strojař a tak vím, že normy jsou velmi důležité. Normy šetří práci, peníze a minimalizují chyby. Umíte si přestavit, že by si každý větší výrobce vytvořil, nebo upravil specifikaci pro zavit na šroubech? Sehnat a určit správný typ by bylo nesmírně náročné a navíc i drahé.

    WEB má v tomto neskutečný binec. doufal jsem, že alespoň v HTML 5 se tomuto předejde, ale lidi jsou prostě nepoučitelní. Takže za 5 let se bude opět vést diskuse jako je tato:
    http://www.zive.cz/clanky/proc-ie9-nezobrazi-kazdy-web-tak-jak-by-mel/sc-3-a-154097/default.aspx?showforum=1

    Nechci, aby to vyznělo, že jsem proti novinkám , naopak (budu šťasten až budu moci pohřbít FLASH s jeho úžasně stabilním pluginem, lokální úložiště, offline aplikace atd.). Jenže chci tyto vlastnosti používat bez toho, abych řešil kompatibilitu mezi prohlížeči. Proto mi přijde realizovat projekt ještě před tím, než je kompletní specifikace mi nerozumné. Ostatně už teď se nejsou schopni dohodnout na kodeku pro video, MS si zase nějak nechce moc tykat s SVG. Nevím, jestli se dohodli alespoň na kodeku pro audio. Nejhorší je, že se tento zmatek může projevit později, až se začnou využívat všechny možnosti HTML5 a výše uvedené problémy by mohly způsobit, že jinak užitečné vlastnosti a funkce mi budou platné, jako mrtvému zimník.

    Tvé nabádání k riskování, totiž může zakonzervovat stav podobně, jako tomu bylo s box modelem u IE. Existovala už velká spousta firemních aplikací a tak MS už nemohl chybu opravit. Musel počkat až se stane starý prohlížeč minoritní. Ovšem u IE9 tomu dal korunu tím že nepojede na XP. Doufat, že všichni přejdou na W7 kvůli IE mi přijde naivní.

    OdpovědětVymazat
  5. @Radek B Ne, je to skutečně tak, jak jsem napsal. Dřív tomu tak nebylo, ale již (cca 8 let?) W3C řeší i implementace. Což věci na první pohled zpomaluje, ovšem ona realita na Webu je pak výrazně lepší.

    W3C třeba nemůže prohlásit specifikaci za hotovou, dokud neexistují minimálně dvě interoperabilní implementace pro každou vlastnosti zmíněnou ve specifikaci! A opravdu dvě, jedna nestačí.

    Součástí přípravy specifikací dnes je i tvorba testů, které ověří implementaci... Prostě už dávno to není jen o tom dokumentu, který ta rozhraní deklaruje.

    OdpovědětVymazat
  6. @Michal Pozor, to jsou odlišné věci Implementace v prohlížečích je nutná, bez ní nelze specifikaci dokončit a vydat. Tak to prostě je a je to cesta, kterou si W3C samo zvolilo.

    To, co ve skutečnosti popisuje Phillipe a co já komentuji, je používání HTML5 na reálném webu.

    Diskusím ani diskutérům na Živě nerozumím, ani je nečtu, tak se k tomu nedokážu vyjádřit.

    "Tvé nabádání k riskování" Tady se ohrazuji, nikoho nenabádám ani nevyzývám k riskování, já jsem v tomhle směru spíš konzervativní. Pokud hovořím o tom "že to riskneme", popisuji, co se stane, resp. co se děje. Čili jakési fungování webového světa, který má jistá pravidla a bude se nějak chovat ať mu to pomůže nebo ne. V tomhle případě bude riskovat (jak už to dělal v minulosti).

    Nikde a nijak netvrdím, že je to chování správně a mělo by se tak dít. Jen že se tak dít bude a je dobré si uvědomit, že se tak děje a dít bude.

    OdpovědětVymazat
  7. Původní příspěvek jsem sice nečetl, ale té překotné implementace novinek nejen z HTML5 si bohužel všímám. Implementace je pro ověření specifikace bezesporu hodně důležitá, ale je otázka, kdy s ní začít. Bohužel dnes hodně frčí snaha "být první", případně mít víc bodů v tom či onom testu, takže se překotně implementují věci, u kterých se specifikace ještě hodně mění. To osobně nepovažuju za dobré. Vznikají díky tomu jen zbytečné problémy. Bohužel, doba je taková.

    OdpovědětVymazat
  8. S rychlostí implementací je to podobné u HTML5 nebo CSS3 apod. Jen o HTML5 se poslední dva roky víc mluví, tak je zdánlivě víc na očích než vše ostatní.

    OdpovědětVymazat
  9. A konečně se proti Philippovi objevilo i pár reakcí od dalších lidí z oboru.

    OdpovědětVymazat

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