čtvrtek 9. července 2009

Noční buildy Firefoxu obsahují parser HTML5

Když si stáhnete noční build Firefoxu a nastavíte v něm html5.enable na true, začne Firefox používat parser HTML5.

Jelikož parser HTML5 je historicky první pokus o standardizaci parsování HTML, pak Firefox je historicky první prohlížeč, který může používat standardizovaný parser HTML.

Myšlenka vedoucí ke standardizaci parsování HTML je prostá: zvýšit interoperabilitu mezi prohlížeči, čili zvýšit pravděpodobnost, že pokud vám stránka funguje v jednom prohlížeči, bude fungovat i v dalších (a pokud možno stejně).

Autorem této implementace je Henri Sivonen, který původně vytvořil parser HTML5 v Javě (ten dnes mj. používá i oficiální validátor HTML od W3C pro validaci HTML5). Kód pro Firefox byl vytvořen automatickou konverzí z Javy do C++.

Neznamená to ovšem, že by Firefox měl v nejbližší době přejít na tento parser. Jedná se zatím pouze o experiment a historicky první ověření, zda můžeme na dnešní web takový parser vůbec pustit, zda bude všechno fungovat a zda se pod ním naše oblíbené stránky zcela nezhroutí.

Parser HTML5 totiž nemá umět parsovat jen HTML5, ale má umět parsovat stávající HTML používané všude na webu, ať už se jedná o HTML3, HTML4 nebo o XHTML1.

Doposud byl standard parseru HTML5 ověřován hlavně automatickými testy u Google, kde byl spouštěn na několik miliónů stránek ležících v cachi Googlu a následně byly analyzovány zalogované výsledky. Nyní poprvé může výsledek parseru HTML5 vidět uživatel ve svém prohlížeči. Tím se mohou objevit problémy ve specifikaci, na které dosud nikdo nenarazil.

Nejedná se proto ani tak o přínos pro prohlížeč Firefox, jako o přínos pro budoucnost HTML, konkrétně pro zvýšení kvality specifikace HTML5.

Související

14 komentářů:

  1. Skvělý. Teď začnou všichni webmasteři zase prasit, protože na to bude parser :-)

    OdpovědětVymazat
  2. dík za info idem to hneď vyskúšať :o)

    OdpovědětVymazat
  3. ad 1. komentář

    Zatímco doteď webmasteři prasili, protože W3C nebyla schopná popsat závazný způsob parsingu.

    Kdyby to napohnojila W3C hned na začátku, nebylo by třeba dnešních obstrukcí. W3C je historicky první organizace, která svojí neschopnost dala najevo tak okatě, že stvořila historicky první normu jazyka (HTML), u které nedodala závaznou gramatiku a závazný způsob parsování.

    Takovou hrubou chybu v normě jazyka by třeba ISO, nebo jiná normativní organizace neudělala. Tvůrci takové normy by bylo navrhnuto místo uklízečky ve firmě a taková norma by se vůbec nedostala ven a nebyla schválena interními procesy organizace.

    OdpovědětVymazat
  4. Ha, to je zajímavé.

    Martine, nevíš co na to výrobci ostatních prohlížečů. Jak se tváří na jednotný parser?

    Na jednu stranu by jim to ušetřilo za vývoj jedné části a mohli se věnovat jiným částem jako GUI.

    Na druhou stranu by mohli přijít o konkurenční výhodu typu rychlost zobrazování.

    Jelikož pro svět správnější je první strana mince, určitě se budou chovat podle té druhé. :)

    OdpovědětVymazat
  5. @Martin Ostatní výrobci se na něj tváří vcelku pozitivně, ale rozhodně ne ve smyslu, že by naň přešli skokem jako spíš že tam, kde je nějaký důvod, postupně ohýbají své parsery, aby se chovaly podle HTML5-parser standardu. To dělá řada výrobců už pár let.

    Zlom může nastat, pokud by si jeden z prohlížečů pořídil "full HTML5 compliant" parser (což by i Firefoxu nastalo, kdyby tenhle časem použili jako výchozí), pak by se mohli začít další výrobci lámat. Ale zda to nastane není ani u Firefoxu jasné - pokud vím, tak to Mozilla Copr. nikde neslíbila, zatím to je pouze pokus.

    U nově vznikajících prohlížečů je volba ovšem jasná. Nejoptimističtější předpovědi tvrdí, že postavení prohlížeče podle HTML5 specifikace ti může snížit náklady na výrobu nového prohlížeče až na polovinu, protože za tebe vyřeší analýzu chování dalších prohlížečů, což by jinak zabralo měsíce (možná i roky) práce.

    Existuje pokud vím jeden open source prohlížeč (teď si nevzpomenu na název), který vznikal cca před rokem, možná dvěma, a automaticky stavěl parser dle HTML5, což pro něj byla nejlevnější cesta a ušetřilo mu to analýzu HTML parserů stávajících prohlížečů, kterou by jinak musel podniknout, protože by bez toho jeho prohlížeče na reálných webových stránkách nefungoval (jedná se o spousta "fíglů", které prohlížeče z historických důvodů dělají a které nikde - kromě HTML5 - nejsou zachycené).

    OdpovědětVymazat
  6. @Martin:

    Žádný, dnes opravdu rozšířený prohlížeč se nebude hrnout na přecházení na HTML5 parser.

    Microsoft to neudělá, protože kompatibilita se staršími stránkami vytvořenými pro dřívější verze IE je pro něj důležitější, než cokoli jiného.

    Stejně tak i pro jiné komerční firmy může být kompatibilita s existujícími stránkami důležitější.

    Hodilo by se tu připomenout historku ze starších dob Firefoxu. Firefox chtěl zobrazovat validní stránky pouze podle norem W3C. Výsledkem bylo, že obrovskou spoustu stránek nezobrazil, nebo špatně. Vývojářský tým, přestože se beranovitě bránil nakonec pochopil, že tato taktika nevyjde. Že si musí vybrat, buď W3C normy jako Bůh, ale Firefox půjde do kytek, nebo se přikloní ke zobrazení většiny stránek a Firefox se zachrání a rozšíří. Vybrali si cestu 2.

    Microsoft se cestou HTML5 parseru IMHO nevydá nikdy. A ostatní podle toho, jak kvalitně HTML5 parser zobrazí většinu důležitých stránek. Nikdo spoustu stránek předělávat nebude. A open source prohlížeče, kterým je u zadnice, co si uživatel myslí na HTML5 parser přejdou rychle.

    OdpovědětVymazat
  7. "Žádný, dnes opravdu rozšířený prohlížeč se nebude hrnout na přecházení na HTML5 parser."

    Ono rychle na něj rozhodně přejít nemůžou, jedná se o kritickou komponentu, kde by se to mohlo krutě vymstít.

    Z dlouhodobého pohledu jednu možnost stále vidím. Existuje jeden důvod pro přechod. A sice, kdyby se ve výsledku prokázalo, že tenhle parser je s webovými stránkami kompatibilnější než jejich parser stávající.

    Ad historka s Firefoxem: Nad tímhle opravdu kroutím hlavou. Tohle si skutečně nevybavuji a to vývoj Firefoxu sleduji. Mohu požádat o nějaké detaily a hlavně o VĚROHODNÝ zdroj?

    OdpovědětVymazat
  8. Je otázka, jak měříte kompatibilitu stránek, a jaká je „hodnotící funkce kompatibility“. To je totiž velmi vágně definované.Třeba pro Microsoft je kompatibilita definovaná tak, aby HTML5 parser zobrazil stránky přesně jako současný parser. Jiná firma to bude mít zase jinak.

    Jinak Firefox používám více, než 5 let. Tehdy se to jmenovalo tuším jinak. Pak se to přejmenovalo na Firebird, a došlo k roztržce mezi stejnojmennou databází. Takže ta historka je pravděpodobně starší, než 5 let. A velmi pochybuji, že se tím někde budou chlubit, ale určitě to přes Google najdete, budete-li o to stát.

    Někdy lituji, že si nefotím screenshoty zajímavých věcí, když na ně přijdu. Třeba přes časem jsem si četl online manuál k PostgreSQL a u Windows verze tam bylo psáno, že vývojáře vývoj PostgreSQL pro Windows neskutečně štve, a že dělají jen to nejnutnější a nehodlají to dotáhnout do stability, a že všichni svorně Windows nenávidí. Jasně, že to v oficiálním manuálu vydrželo necelý měsíc, než to stáhli, a teď se k tomu nepřiznávají a dělají, že nic.

    Jinak géčko se vyvíjelo velmi dlouho, než přišlo k obecně použitelné aplikaci. Tehdy se o to moc lidí nezajímalo. Začátek Firefoxu je opravdu hodně v historii. Mozillu jsem začal používat jako hlavní prohlížeč od verze 0.8, a jako vedlejší mnohem mnohem dříve.

    Mimochodem, Mozilla tehdy byla široko daleko nejžravější a nejnáročnější aplikace. Tehdy jsem si musel speciálně kvůli ní koupit výkonnější počítač. Což tak nějak Firefoxu ta žravost dost zůstala, byť už není jednička.

    OdpovědětVymazat
  9. "Takže ta historka je pravděpodobně starší, než 5 let. A velmi pochybuji, že se tím někde budou chlubit"

    V té době jsem vývoj sledoval intenzivněji než dnes, nejen proto u mě důvěryhodnost této informace bez věrohodného zdroje ještě více klesla. Ale třeba to někde najdete.

    OdpovědětVymazat
  10. Mám otázku - ako sa odlišuje HTML5 parser od súčasného parsera spracovávajúceho text/html?

    OdpovědětVymazat
  11. @Anonymní Spíš bych říkal, čím se odlišuje standardizovaný HTML parser od jakéhokoliv jiného parseru (HTML5 parser je první standardizovaný HTML parser).

    Je to zcela stejné jako v jiných oblastech. Čím se liší standardizovaná dřevěná paleta od jakékoliv jiné palety? Jakou to přináší výhodu? Pokud dokážete snadno odpovědět na tuhle otázku, budete zároveň vědět, v čem spočívá výhoda HTML5 parseru.

    OdpovědětVymazat
  12. Dobre, tak inak. Pozná niekto nejaký kus kódu, ktorý sa inak spracuje a zobrazí v prehliadači aj iný výsledok html5 parserom ako obyčajným html parserom?

    OdpovědětVymazat
  13. @Anonymní Problém je, že "obyčejný HTML parser" podobně jako "univerzální prací prostředek" používaný v reklamách NEEXISTUJE.

    Existují jen konkrétní implementace HTML parserů v prohlížečích a dokonce i mezi nimi všemi najdeme řadu rozdílů, které se navíc mění v čase (viz např. bugzilly jednotlivých prohlížečů, kde takové případy najdeme), protože se tyto parsery stále vyvíjí. A to je jádro problému.

    V případě, že by se řídily (nějakým) standardem, nebudou tyto rozdíly existovat. V tom spočívá výhoda standardního (HTML5) parseru. Snad je to již jasnější.

    OdpovědětVymazat

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