čtvrtek 30. července 2009

Malá reorganizace HTML5 aneb spin-offs

Poměrně dlouho se vedla debata, zda všechny části specifikace HTML5 do ní skutečně patří. Její editor Ian Hickson na rovinu přiznal, že je pro něj snazší starat se o jednu velkou specifikaci než o řadu menších, což je pro něj důvod, proč vše udržuje pohromadě.

Tlak na rozdělení do menších specifikací postupně sílil, a tak v této době dochází k vyčlenění (spin-off) několika částí HTML5 do samostatných specifikací, a to hlavně:
  • Web Storage (jednoduché úložiště klíč-hodnota rozšiřující cookies)
  • Web Database (plnohodnotná SQL databáze přezdívaná SQL storage nebo SQL5)
  • Server sent events (možnost přijímání událostí ze serveru)
  • Web Sockets (peer-to-peer komunikace mezi webovými prohlížeči)
Více viz plný přehled.

Můžete si všimnout, že jádra HTML5 se rozdělení nedotklo, jedná se opravdu jen o vyčlenění funkčních celků, které můžou existovat samostatně.

Zda bude tohle rozdělení ve výsledku dobré nebo ne ukáže čas. Na jednu stranu je rozhodně snazší orientovat se v několika menších dokumentech než v jednom velkém. Na druhou stranu cítím, že u takové vyčleněné specifikace spíš hrozí, že se na ni prostě zapomene, nikdo se jí nebude věnovat a ona umře a nedivil bych se, kdyby k tomu minimálně v některých případech došlo.

A na závěr z komunikačního hlediska je lepší mít všechny zmíněné vlastnosti označené hromadně nálepkou HTML5 než používat kryptografické názvy dílčích specifikací. Dodnes z toho těží snad všichni implementátoři včetně Microsoftu. Ovšem to je hlavně rétorický problém, který lze snadno oblafnout. Vždy je možné vyčleněné specifikace označit jako moduly HTML5.

čtvrtek 16. července 2009

Vyzkoušejte si nové drag and drop API ve Firefoxu 3.5

Jednou z novinek HTML5 je API pro drag & drop. Implementuje ho i nedávno vydaný Firefox 3.5. API nevzniklo na zelené louce, bylo vytvořeno dle implementace v Internet Exploreru a její kopie v Safari.

Pro implementaci drag & drop podle nového API již není třeba používat nízkoúrovňových událostí typu mousedown a mousemove, můžete sáhnout po událostech typu dragstart, dragend atd.

Demo

Výsledek si můžete ve Firefoxu 3.5 vyzkoušet na sadě ukázek.

Zdrojový kód je diskutovaný v článku HTML5 drag and drop in Firefox 3.5.

Připravil jsem i minimální kód potřebný pro zahájení drag & drop procesu.

Jelikož počet vývojářů, kteří používají nativní JavaScript klesá, klesá i význam téhle zprávy. Z událostí DOMu se pomalu stává cosi nenápadného, co se schovává kdesi dole pod frameworkem, který jejich obsluhu bezchybně zvládne.

I přesto je dobré minimálně vědět, že takové nové API existuje, abyste jednou nebyli překvapeni, a nepřemýšleli, kde se ta záhadná událost dragleave vlastně vzala.

Aktualizace

Vizionáře v oboru webových aplikací jistě nadchne fakt, že tento mechanismus funguje i napříč doménami, tj. můžete provádět drag & drop třeba mezi Emailem na Seznamu a Google Docs. A na těchto aplikacích pak záleží, zda se spolu dokáží domluvit.

středa 15. července 2009

Jak odchází XHTML2

Dnes sérii článků o konci XHTML2 (viz 1, 2 a 3) rozšířím. Na blogu Shane McCarrona, jednoho z členů pracovní skupiny pro XHTML2, jsem našel zajímavou zpověď, která by neměla zůstat zcela nepovšimnuta.

Uvedu jen krátké citace, zájemci nechť si přečtou celý originál:
Pracovní skupina nebyla informována. Všichni ve skupině se o ukončení dozvěděli z tisku, nikoliv od W3C.
Dokument s často kladenými otázkami byl rovněž publikován bez konzulace s pracovní skupinou.

čtvrtek 9. července 2009

Předseda XHTML2 WG říká: XHTML2 není mrtvé a bude se vyvíjet mimo W3C

O konci XHTML2 se objevila řada zpráv včetně oficiálních a potvrzených. Ty nejdůležitější jsem srhnoval nedávno v R.I.P. XHTML2 - pracovní skupina pro XHTML2 koncem roku ukončí svou činnost a v ...a ještě jednou o XHTML2 (aktualizováno). Zmínil jsem i možnost, že by někteří z tvůrců mohli v práci na XHTML2 pokračovat i nadále - mimo W3C.

Netušil jsem, že odpověď přijde tak rychle. Steven Pemberton, který předsedá pracovní skupině pro XHTML2, na svém blogu včera prohlásil:
Fakt, že W3C již nemá zdroje pro podporu XHTML2, neznamená, že XHTML2 již není potřeba, ani že společnosti, které na ní pracují, tuto práci chtějí ukončit. Řešíme proto, kde budeme v naší práci pokračovat, abychom ji mohli dokončit.
Mění se tím něco? Pro ty, kteří používají XHTML2 už dnes způsobem, jako ukázková stránka na w3future, se rozhodně jedná o radostnou zprávu. Přejme jim ji.

Ovšem pro řadové webdesignery se nic nemění. Rozkol mezi XHTML2 a stávajícím webem (zahrnujícím všechny stávající prohlížeče) je tak velký, že se téměř jedná o vzájemně výlučné elementy. Tam, kde jeden uspěje, není pro toho druhého místo. Před lety se věřilo na málo pravděpodobnou, ale přesto možnou budoucnost XHTML2. Dnes to vypadá na jasné vítězství klasického webu. Jak to bude vypadat za pár let, to se nechme překvapit.

Kvíz na závěr

BTW. S Adamem Haunerem se právě dohadujeme, zda Ian Hickson své tvrzení "Personally, I think XHTML2 is shaping up to be a great specification," v roce 2003 myslel vážně nebo se jednalo o ironii a nemůžeme se shodnout. Co si myslíte vy?

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í

úterý 7. července 2009

...a ještě jednou o XHTML2 (aktualizováno)

Není divu, že ukončení vývoje XHTML2 vyvolalo řadu dotazů. Ukázalo se také, že spousta webdesignerů a vývojářů nemá o vývoji u W3C ani ponětí (to jim nelze brát za zlé, to je jen důsledek chybějícího "informačního marketingu" W3C), a tak nabyla pocitu, že koncem XHTML2 končí celé XHTML, což není pravda. Vývoj XHTML pokračuje i nadále, jen nenavazuje na XHTML2, nýbrž na XHTML1.0.

Zpověď insidera

Objevilo se ovšem i několik zajímavých příspěvků. Pokud chodíte na pražská webdesignerská setkání PROWAS, jistě znáte jejich organizátora Jonny Axelssona, který se na XHTML2 dříve podílel (je uveden dle abecedního pořadí jako první z editorů specifikace XHTML2).

Jonny dnes na blogu rozebírá situaci v XHTML2. Je velmi zajímavé si to přečíst, protože Jonny ví, jak skupina skutečně fungovala a může nám tak napomoct pochopit historii. Mě zaujalo:
Nebylo to nikde oficiálně uvedeno, ale jednou z hlavních motivací vytváření XHTML2 bylo nabídnout přesvědčivý důvod pro přechod od HTML ke XHTML, tedy něco, co předchozí specifikace nemohly nabídnout.
A také:
Totéž platí pro odůvodnění pracovní skupiny nepublikovat errata k HTML4, protože budoucnost je v XHTML. HTML5 v podstatě obsahuje HTML4 errata.
Další dva zajímavé články, které stojí za přečtení, jsou poněkud polarizované:
Přeberte si to sami. Téma XHTML je dnes víc horké než kdy dříve a zřejmě se na tohle téma dočteme ještě hodně zajímavostí a ještě mnohem více nesmyslů a nepřesností.

Aktualizace

Své k tématu před pár hodinami napsal i David Baron z Mozilly a nabízí zajímavý pohled, který ledacos vysvětluje. Dovolím si proto přidat jednu citaci:
Práce na XHTML2 začala v době, kdy technologie, na kterých stál Web stagnovaly (jak to zakusila řada uživatelů a poskytovatelů obsahu). Internet Explorer měl na trhu prohlížečů monopol resp. téměř monopol. Microsoft zpomaloval vývoj nových verzí Internet Exploreru v naději, že webové aplikace nebudou schopny konkurovat aplikacím na Windows a aplikace na Windows udrží uživatele vázané na operační systém Windows.

Proto bylo XHTML2 vyvíjeno bez očekávání, že by jej hlavní prohlížeč vůbec kdy implementoval. Jiné pracovní skupiny, které se věnovaly webovým technologiím, nadále spolupracovaly s ostatními výrobci prohlížečů v naději, že úspěch jejich technologie v těchto prohlížečích možná Microsoft přiměje je implementovat. Nicméně vývojáři XHTML zaujaly extrémější pozici: chtěli vytvořit samostatný Web na své vlastní technologii vytvořený "tím správným způsobem". Tento Web by byl prohlížen odlišným softwarem, který by eventuelně vytlačil stávající webové prohlížeče - všechny webové prohlížeče.
Přiznám se, že tenhle poznatek je pro mě nový, zájemcům rozhodně doporučuji přečíst celý Davidův článek ex-HTML, který se snaží vysvětlit, proč XHTML2 stálo bokem od VŠECH výrobců prohlížečů a proč se následně tak izolovalo od celého Webu, jak jej známe dnes.

čtvrtek 2. července 2009

R.I.P. XHTML2 - pracovní skupina pro XHTML2 koncem roku ukončí svou činnost

Dnes Tim Berners-Lee oznámil, že XHTML2 WG koncem tohoto roku ukončí svou činnost. Přesněji bylo řečeno, že plán pracovní skupiny pro XHTML2 byl navržen do konce roku 2009 a již nebude dále prodloužen. W3C se hodlá soustředit na HTML WG a urychlit vývoj HTML5.

A co bude s XHTML2?

To má zvláštní osud. Myšlenka nového pěkného formátu postaveného na XML není jistě k zahození, ovšem ona implementace se zjevně nepovedla. Opakovaně můžeme slyšet kritiku, která se na vytvořený XHTML2 snáší. O XHTML2 se poměrně negativně vyjadřuje i Jiří Kosek jinak velký propagátor XML technologií (dokonce největší, jakého znám).

Poslední veřejná verze specifikace XHTML2 je pracovní návrh z roku 2006, je zhola nemožné, aby do konce roku prošel všemi specifikačními stádii až po final recommendation. Její osud pod křídly W3C je zpečetěn.

Je možné, že někteří z tvůrců XHTML2 budou v jeho tvorbě i nadále pokračovat, ovšem tento formát asi nebude ze strany W3C prosazován, o jeho osudu rozhodne trh. Pokud někdo tento formát bude potřebovat, může podpořit nebo sponzorovat jeho dokončení. Pokud se nikdo takový nenajde, tak nejspíš tento formát časem zmizí z povrchu země.

Co další specifikace?

Ovšem XHTML2 WG poslední roky nezahálela, když si proscanujete archiv novinek z roku 2009, 2008 a 2007 na slovo XHTML, najdete několik jejích dalších aktivit (včetně letošních inovací XHTML1 a XHTML1.1, které byly následně odvolány - můžeme přemýšlet, zda ono odvolání nebylo signálem, že něco není v pořádku).

W3C se bude muset rozhodnout, do jakých skupin tyto aktivity přesune, příp. zda pro některé z nich založí vlastní skupinu (např. o konkurenta mikroformátů RDFa je zájem, proto práce na něm bude jistě brzy pokračovat). Některé aktivity budou zaříznuty (kromě vlastního XHTML2 bude ukončena např. XFrames, HLink a další).

XHTML FAQ

K této příležitosti byla vytvořena speciální stránka FAQ o budoucnosti XHTML, kde se dozvíte, že ukončení XHTML2 WG je rozhodnutí managementu W3C, že na pracovní skupinu pro HTML bude nyní W3C věnovat více prostředků - myšleno hlavně personálních (už bylo na čase).

W3C také míní dohlídnout, aby vznikající XHTML5 (XML varianta HTML5) byla zcela kompatibilní s XML. Najdete v něm i podrobný přehled specifikací pracovní skupiny pro XHTML2, na kterých bude práce ukončena.

Osud XHTML2 byl de facto zpečetěn již na jaře roku 2007, kdy W3C oficiálně adoptovalo HTML5. Dnes bylo toto zpečetění jen řádně orazítkováno, podepsáno a založeno do archivu.

Jednání selhala. Společný kodek na Webu se nekoná

Více než rok probíhaly diskuse s výrobci prohlížečů (částečně za zavřenými dveřmi) ve snaze nalézt dohodu a najít kodek pro video a zvuk, na kterém by se všichni dohodli.

Jak ovšem Ian Hickson včera oznámil, jednání selhala. Situace je následující:
Apple odmítá implementovat Ogg Theora do Quicktime (který je využíván prohlížečem Safari), zmiňuje špatnou hardwarovou podporu a nejistotu v oblasti patentů.

Google do Chrome implementoval H.264 a Ogg Theora, ale nemůže nabídnout licenci na kodek H.264 třetím stranám, které distribuují Chromium, a je také přesvědčen, že kvality Ogg Theora nejsou zatím vhodné pro nasazení na hojně navštěvovaný YouTube.

Opera odmítá implementovat H.264 citujíc nehoráznou cenu za potřebné licence.

Mozilla odmítá implementovat H.264, jelikož není schopna získat licenci, která by se vztahovala na její další distributory.

Microsoft se k podpoře značky <video> vůbec nevyjádřil.
Jak sami vidíte, jedná se o bludiště, ze kterého v tuhle chvíli nevede žádná cesta ven.

Co to znamená?

Nic nového. Web a média na webu zůstává taková, jaká je známe dnes. Aliance Open Video nebo konference o open videu budou i nadále pokračovat, je ovšem otázka, zda budou mít nějaký smysl.

Ian Hickson k tomu dodává:
Při pohledu do budoucnosti vidím dvě možnosti (vzájemně nevýlučné), obě by mohly nastat ale až za několik let:

1. Kodek Ogg Theora se bude nadále zlepšovat. Objeví se hadware obsahující chipy s podporou Ogg. Google jej bude distribuovat dostatečně dlouho, aniž by jej někdo žaloval a obava Applu ze skrytých patentů již nebude tak veliká. Následně se Theora stane de facto standardním kodekem na Webu.

2. Vyprší zbylé patenty H.264, které vlastní společnosti, jež je odmítají volně licencovat, tak bude možné distrubuovat H.264 bez licenčních poplatků a H.264 se stane de facto standardním kodekem Webu.
Já tady vidím ještě třetí možnost, byť si nejsem jist, nakolik je realizovatelná. Jak již historie webu ukázala, pro prosazení nějaké novinky není vlastně nutné, aby výrobci prohlížečů onu vlastnost implementovaly, stačí, když v nich lze alespon do jisté míry emulovat.

Pokud by se ukázalo, že taková emulace (v tomto případě pro kodek Theora OGG, protože emulovat H.264 by z licenčních důvodů asi opět nešlo) je dostatečně výkonná (ať už poběží v Javě, Silverlightu, Flashi nebo samotném JavaScriptu), pak není co dále řešit. Je otázka, jak dobře by takovou emulaci dnešní hardware zvládl. Během let se ovšem i tahle bariéra bude snižovat a proto tady jistou šanci vidím.

Video ano, otevřený formát ne

Boj o otevřené video nebo o jednotný formát videa na webu (říkejte si tomu jak chcete) skončil neúspěšně. On ovšem neúspěšně vypadal už na začátku. Výrobci prohlížečů totiž zaspali. Kdyby tenhle problém řešily před lety, těsně před velkým nástupem videa na webu, dalo se možná něco ovlivnit, dnes už jen slepě přihlížejí a příliš prostoru nemají.

Jejich chyba. Nekorunovaným králem videa je a nadále zůstává Flash a formáty, které podporuje v této verzi, nebo bude podporovat ve verzích následujících.