7
Fotogalerie

Microsoft: IE9 je skvělý! Mozilla: Děláte si legraci?

Microsoft se chlubí, že má téměř dokonalý prohlížeč. Mozilla zareagovala prakticky okamžitě: nene, Sofites, k dokonalosti máte vážně daleko. O co tu tedy jde?

Microsoft minulý týden uvolnil RC verzi svého prohlížeče Internet Explorer 9. Od té doby si jej stáhlo na dva miliony zájemců a v Redmondu už jistě otevírají šampaňské. Chuť jim ale možná trošku zkazila Mozilla – respektive její evangelista Paul Rouget, který na svém blogu bez servítek napsal, že jakkoliv je IE9 lepší než jeho předchůdce IE8, ani náznakem se nejedná o moderní prohlížeč. Anebo co možná nejexpresivněji: „Is IE9 a modern browser? NO!“

Aféra HTML5gate

Je tedy Internet Explorer 9 moderní, nebo starý? To v podstatě záleží na úhlu vašeho pohledu. Paula v tomto případě rozčílilo tvrzení Microsoftu na oficiálním blogu IE, podle kterého „modré éčko“ splňuje nové standardy HTML5 prakticky nejlépe ze všech a s naprostým přehledem oproti Firefoxu.

tabulka.png
Kontroverzní tabulka na blogu Internet Exploreru – má vlastně jen jedno mínus. Jsou to selektivní testy, které netestují všechno, IE v nich tedy může dopadnout tak dobře. Kdyby začal IE testovat i další záležitosti připravované normy HTML5 a přidružené technologie, zdaleka by nedopadl tak dobře

S tím se Rouget samozřejmě nemohl smířit a do protiútoku vytáhl s benchmarkem HTML5 Test a srovnávací referenční tabulkou podpory standardů pro vývojáře When Can I Use. Z obou zdrojů je jasné jediné. IE9 je vážně o polovinu viditelného vesmíru před stárnoucím Internet Explorerem 8, není ovšem ani zdaleka lepší než Opera, Firefox, Chrome nebo třetí z velké pětky – Safari. Lže tedy Microsoft?

ie9 is not a modern browser.png
Evangelista Mozilly má na svém blogu celkem jasno...

Ne, to jistě ne. Ale vyjádření evangelistů a marketingových manažerů z obou břehů – z Mozilly i Microsoftu – je třeba brát s určitou rezervou. Pravdu mají v podstatě oba. Microsoft může tvrdit, že až na několik částí IE9 rozumí HTML5 a Mozilla ve stejnou chvíli může vydávat prohlášení, podle kterých nové „éčko“ splňuje standardy nanejvýš z šedesáti procent. Jak je to sakra možné?

Málokdo ví, co je to skutečně HTML5

Všechno je to možné díky standardizační schizofrenii, médiím a jednomu obrovskému a nafouklému buzzwordu jménem HTML5. Začnu od toho posledního. Do HTML5 se už promítlo tolik očekávání, že s ním spojujeme prakticky vše nové, co se na webu objeví. Při pohledu na weby jako Chrome Experiments, Apple HTML5 Showcase nebo IE Test Drive může leckdo propadnout pokušení (a velkému omylu), že je HTML5 vlastně „úplně to všechno, co vypadá jako Flash Player“. Koukáme na poutavé dynamické a animované aplikace a v diskuzích se pak dohadujeme, že Flash musí zemřít, protože toto všechno už dávno umí „ten“ HTML5.

Chyba lávky – nmnoho z těchto testů má s HTML5 pramálo společného; vystačíte si totiž s možnostmi nejnovějších kaskádových stylů, DOM API a s Javascriptem. Občas přibude nějaké to vektorové SVG a také rastrový Canvas, ale i to jsou technologie, které tu jsou už nějaký pátek a jsou tu vlastně už od doby, kdy je s HTML5 ještě nikdo nespojoval.

html5 logo.png
HTML5 už má i své logo... (microsite hostovanou na doméně w3.org hledejte zde)

Co je tedy sakra ten HTML5? Je to návrh standardu. A slovo návrh – draft – je skutečně třeba opakovat stále dokola. HTML5 není hotový standard a jeho vývoj je nadále velmi živý. To co platilo v červenci, už nemusí platit v lednu a tak dále. Aby to bylo ke všemu ještě trošku složitější, HTML5 standardizují dvě (sic spolupracující) skupiny. Tou první a původní je „svobodomyslnější“ WHATWG (Web Hypertext Application Technology Working Group: Opera, Apple, Mozilla + hromada dalších, členství zdarma) a tou druhou pak dle mnohých poněkud „zkostnatělé“ W3C (World Wide Web Consorcium: 326 společností a organizací z celého světa, placené členství).

html5 tricka.png
... i obchod s propagačním textilem

WHATWG vyvíjela HTML5 až do nedávné doby, posléze ale přešla na tvorbu širšího standardu jazyka HTML, a tak standardu dnes říká prostě jen WHATWG HTML, nebo přesněji „Web Applications 1.0“. Rozšířená verze WHATWG HTML je vlastně souhrn všech možných technologií, které bychom mohli používat v příštích letech. Patří sem nepřímo trojrozměrná grafika WebGL, geolokace (používáme už dnes), techniky běhu aplikací offline (Web Storage/lokální SQL databáze aj.), vícevláknové zpracovávání (Web Worker), rychlejší komunikace napříč webem (WebSocket/push zprávy aj.) a patří sem také hojně diskutovaná dvourozměrná kresba pomocí značky Canvas. Těch dalších technologií a API je skutečně mnoho. Není to ale HTML5, je to širší koncept „nového HTML“.

Nechci klít, ale kdo se v tom má tedy vyznat – co je tedy to skutečné HTML5? V dnešním kontextu, pokud chceme být terminologicky přesní, je HTML5 návrh normy, kterou před lety převzalo W3C od WHATWG. Je to návrh jazyka, který je trošku jednodušší než WHATWG HTML a neobsahuje tolik technologií. Je tedy stabilnější. I W3C samozřejmě standardizuje technologie běhu aplikace v offline režimu, i zde najdete standardy vícevláknového zpracovávání Javascriptu, i zde najdete SVG a další technologie, ale jedná se o samostatné návrhy standardů – respektive o samostatné pracovní skupiny. W3C HTML5 definuje základní úpravy jazyků HTML4/XHTML, popisuje hromadu nových značek včetně medializovaných <video> a <audio>, popisuje možnosti nových formulářů, práci se značkou <canvas> a tak dále. Ovšem nepíše se zde třeba o geolokaci nebo o File API (zcela nová práce se soubory). To všechno jsou samostatné návrhy, které jednou docela možná W3C HTML5 spolkne, zatím se ale jedná o tak raný vývoj, že si to W3C nemůže dovolit. Tedy pokud nechce standard HTML5 skutečně publikovat až v roce 2150.

Microsoft v podstatě nelže

Po technologickém odbočení se vrátím zpět k úvodu a tedy konečně k pointě celého sporu. Microsoft není členem WHATWG, naopak se ale pod tlakem okolností začíná angažovat v konsorciu W3C. A jelikož je standardizace HTML5 (tedy W3C) mnohem přísnější než širší příprava normy WHATWG HTML, je zároveň i jednodušší. Pokud se tedy na svých stránkách Microsoft vychloubá, jak docela slušně splňuje normy W3C HTML5, není zase až tak daleko od pravdy (i když je jeho podpora stále omezená).

Nelže ovšem ani Mozilla

Evangelista Mozilly Paul Rouget si na svém blogu stěžoval, že je Internet Explorer 9 zastaralý prohlížeč (respektive není moderní), v takovém benchmarku HTML5 Test totiž uspěje jen z poloviny. Ale to je právě ten problém! Všechny tyto benchmarky jsou ve skutečnosti mnohem obecnější a se slovíčkem HTML5 pracují v jeho širším chápání – v podstatě prohlížeč netestují na W3C HTML5, ale na WHATWG a všechny přidružené normy. Tyto benchmarky tedy testují prohlížeče na všechny technologie, kterým pod tlakem médií říkáme HTML5, ačkoliv s ním nemají nic společného. HTML5 Test hodnotí prohlížeče i podle toho, jestli podporují geolokaci, WebGL, technologii WebSocket/Push, File API, Local Storage, IndexedDB (to všechno se týká možnosti ukládání nejrůznějších dat stránky na počítači surfaře – dnes pouze jednoduché cookies) a tak dále. Nic z toho ovšem není součástí W3C HTML5 a mnohdy ani WHATWG HTML „Web Applications“. Jsou to přidružené technologie, které jednou budou možná součástí nějakého standardu HTML6 nebo HTML7, dnes to jsou ale experimentální technologie, které jsou poměrně daleko od skutečné publikace hotového standardu. Chrome, Firefox i Safari nebo Opera si s hromadou těchto přidružených technologií poradí, není to ale čisté HTML5 „de jure“.

html5test.png
Název testu je poněkud zavádějící, z dobré poloviny se totiž nejedná o test, který by testoval W3C HTML5
Ve skutečnosti měří připravenost prohlížeče na hromadu nových experimentálních technologií

Zpět tedy k otázce z úvodu článku. Je Internet Explorer 9 moderní prohlížeč, nebo je starý, jak praví Mozilla? Pravdu mají oba tábory. Microsoft ušel obrovský kus cesty a W3C standard HTML5 skutečně podporuje z docela velké části. Microsoft tedy na svůj web skutečně může lakonicky napsat, že HTML5 jakžtakž rozumí (a zabalte to ještě do marketingového slovníku, který ale používají naprosto všichni).

Pravdu má ale zároveň i Mozilla, hromadě přidružených technologií totiž Microsoft skutečně nerozumí. Často je mu vytýkáno, že ani Devítka nepodporuje WebGL (v podstatě mobilní OpenGL ES 2.0 3D grafika, kterou znáte z chytrých mobilních telefonů v HTML značce <canvas>), nicméně to by bylo trošku nespravedlivé. WebGL nestandardizuje ani WHATWG, ani W3C, ale skupina Khronos. Je to vlastně úplně cizí technologie, která nemá s HTML5 naprosto nic společného. Ke všemu je velmi mladá a spolehlivě a ve stabilní verzi ji dnes podporuje pouze Chrome. Že si tedy dává Microsoft na čas zrovna v tomto případě, skutečně není na škodu. Zároveň asi ani nebude moc spěchat, WebGL by totiž teoreticky mohl obchodně kolidovat s jeho technologií Silverlight a DirectX. Google, Opera, Safari a Mozilla žádný Flash Player, JavaFX nebo Silverlight nevyvíjejí, a tak zcela pragmaticky a marketingově bojují za WebGL a přidružené technologie. To je v nejlepším pořádku, pokud ovšem do sporu nevstoupí ideologie. Pokud už komunita principiálních odpůrců Microsoftu kritizuje „Softies“ pro jejich uzavřený a okrajový Silverlight, nechť také kritizují Native Client a další experimenty Googlu a v jistém slova smyslu i Canvas.

Když si dupnete, máte standard

Dnes je dvourozměrné kreslení Canvas sice součástí standardizace HTML5, nicméně ještě před pár lety se jednalo o technologii, kterou rozvíjel především Apple a Mozilla. Jelikož byly obě společnosti hlavními mluvčími skupiny WHATWG, technologii protlačily do standardizace, kterou o pár let později převzalo konsorcium W3C. V podstatě se tedy jednalo o podobný tlak konkrétního výrobce, za jaký byl třeba v druhé polovině devadesátých let kritizovaný Microsoft, když svůj Internet Explorer vylepšoval o vlastní technologie, které naopak odmítali zavést ostatní.

sunspider.png
Výsledkem SunSpideru je čas zpracovávání, který se liší podle použitého hardwaru a systému. Podstatné tedy v tomto případě nejsou absolutní hodnoty, ale poměry mezi prohlížeči. Proč v tomto testu rychlosti Javascriptu IE9 dosahuje tak vysokého skóre, si můžete přečíst ve starším článku.

Canvas je jistě skvělý a už se těším, kdy se společně s SVG ještě více prosadí (SVG dnes používají hojně třeba mapové portály včetně Mapy.cz – kdykoliv měříte vzdálenost, vykreslovaná čára nad mapou je vektorová SVG křivka), ale výtka evangelisty Mozilly, že Firefox Canvas podporuje už dlouhá léta, je poněkud demagogická. Stejně tak by totiž mohl před lety Microsoft tvrdit, že zatímco jeho Internet Explorer podporuje ActiveX, ostatní nic takového nemají.

 dromaeo.png
Druhým populárním a asi nejkomplexnějším testem rychlosti Javascriptu je Dromaeo od tvůrců Firefoxu. I v tomto případě nejde o absolutní hodnoty, ale o poměry. Pokud vám IE9 připadne pomalý, vězte, že kdybych do grafu promítl i IE8, rozdíly mezi IE9 a nejrychlejším Chromem by byly poměrově téměř zanedbatelné.

Souboj prohlížečů pokračuje. Internet Explorer 9 podporou standardů a výkonem dohání konkurenci a už ani zdaleka není tím otloukánkem v pozadí. Zároveň je ale třeba nahlas zvolat, že nerozumí nejnovějším technologiím, které se dnes pečou ve WHATWG a pracovních skupinách W3C. Skoro trestuhodná je pak třeba absence API pro drag&drop (přetáhnutí souboru z počítače nad webovou stránku a jeho nahrání na webvový server), které by se konečně mohlö rozšířit. Toto se tak v IE dodnes musí dělat buď pomocí Flash Playeru nebo třeba s pomocí Silverlightu. Microsoft má ale na druhou stranu ještě čas, ani jeden návrh standardu totiž zatím není doporučený ke skutečné publikaci.

To máte tak, když implementace standardů v prohlížečích čas od času (no vlastně pokaždé) předběhne samotnou standardizaci.

Určitě si přečtěte

Články odjinud