Jiří Kosek: XML už je všude

Zeptali jsme se Jiřího Koska, jak probíhal proces připomínkování OOXML za Českou republiku, proč na CSS3 čekáme již 10 let, jaké problémy vidí na XHTML a také jak hledí na budoucnost XML a na jeho konkurenční formáty. Jiří Kosek nám také přiznal, že dokončuje svou další knížku.

Dnes přinášíme druhou část rozhovoru s Jiřím Koskem. V první části rozhovoru jsme se věnovali W3C. Dnešní část bude trochu pestřejší. Zaměříme se nejen na práci W3C, ale i na standardizační organizace ISO a OASIS. A také na budoucnost některých webových technologií.

Nedávno jsi měl poměrně důležitý úkol při schvalovacím procesu, který se týkal OpenXML. Co přesně jsi dělal?

Jelikož jsem byl zpracovatel mezinárodní spolupráce výboru ISO/IEC JTC1/SC34, bylo mým úkolem přečíst návrh této normy, která měla přes 6 tisíc stránek. Navíc jsem jako mezinárodní zpracovatel byl zodpovědný posbírat připomínky od všech zainteresovaných subjektů.

Do té doby to byl jednoduchý úkol, protože normy, které tento podvýbor schvaloval, nikoho příliš nezajímaly. Četl jsem je já sám a posílal jsem připomínky, které byly víceméně moje, byť byly za celou ČR. Jelikož OOXML bylo žhavé téma, přiměl jsem ČNI, aby zřídili na svém webu prostor, kam může připomínky poslat kdokoliv.

A to není obvyklé?

Ne, v ČNI to nebylo obvyklé. ISO vznikalo v podobné době jako OSN a z dnešního pohledu tak má svá vnitřní pravidla poměrně zvláštní. No a národní standardizační organizace (u nás ČNI, nyní přejmenované na UNMZ) jsou tímto duchem také ovlivněny.

Na jednu stranu od zpracovatele vyžadují, aby zajistil prodiskutování návrhů normy mezi všemi subjekty, které téma zajímá. Na druhou stranu kvůli copyrightu ony návrhy norem nesmějí dát nikomu, kdo není členem jejich technické normalizační komise. Je to celé trochu zamotané.

Naštěstí podvýbor SC34, kde pracuji, funguje dobře a všechny dokumenty jsou veřejně přístupné. Nebo dlouhou dobu byly, minimálně návrhy norem.

Jiří Kosek

XML už je prostě všude.

Takže jsem shromáždil připomínky. Navíc jsem měl nějaké vlastní, jelikož jsem celý text přečetl.

Některé připomínky byly relevantní více, jiné méně. Vybral jsem, které by se měly stát součástí stanoviska za ČR. Následně dostali šanci ti, jejichž připomínky byly zamítnuty. Mohli zdůvodnit, proč by přece jen měly být zahrnuty. Následovalo osobní setkání, kde se diskutovaly zbylé sporné připomínky. Nakonec vznikl seznam připomínek za ČR, který byl do ISO odeslán společně s návrhem hlasu.

Pokud vím, připomínek nebylo právě málo.

Ano, řada lidí OOXML kritizovala a celkem oprávněně. V návrhu normy OOXML byla řada problémů, to samozřejmě ano. Připomínek bylo velké množství, ale poměrně rychle se objevily návrhy, jak řadu z nich vyřešit.

Ovšem ISO se rozhodlo, že návrhy řešení připomínek nezveřejní. Argumentovali tím, že komentáře jednotlivých států jsou chráněny copyrightem těchto států, ISO nemá souhlas tyto připomínky zveřejnit, proto nemůžou zveřejnit ani návrhy, jak se s připomínkami vypořádat, protože tím by museli zveřejnit i ony připomínky a porušili by copyright. Těžko říct, nakolik to mysleli vážně, a nakolik to byla zástěrka.

Já jsem jim psal, že připomínky ČR jsou zveřejněné, ať aspoň zveřejní reakce na připomínky ČR. Dostal jsem i souhlas od editora, který za ECMA vypracovával návrhy na vypořádání připomínek. Urgoval jsem to dvakrát, ale ze sekretariátu ISO se mi vůbec neozvali.

OOXML spadlo mnoha lidem v SC34 do klína poněkud nešťastně. ECMA zaslala specifikaci do ISO a tam vybrali pracovní výbor, který se zabýval XML, podle logiky, že OOXML je postavené na XML. Většinu lidí tím zrovna nenadchli.

Mohl jsem teoreticky ČNI říct, že na tak rozsáhlý úkol nemám čas a odmítnout to, ať si s OOXML dělají, co chtějí. Pravděpodobně by pak udělali to, co do té doby dělali i u některých dalších norem. Nejspíš by řekli: „Nebudeme se o to zajímat a pošleme ano“. To mi přišlo škoda, protože OOXML je formát, který bude používat řada lidí, tak proč nevyužít možnost opravit problémy.

Tvou hlavní doménou je XML. Před lety se říkalo, že budoucnost je v XML, které mělo nahradit prakticky všechny další formáty. Vzpomínám, když ty jsi v české skupině uživatelů LaTeXu vysvětloval, že budoucnost je v DocBooku. Dnes mám pocit, že pomalu nastává trend opačný a jistý odklon – objevuje se zklamání z XML a začínají se prosazovat dílčí specifické formáty. Jak to vidíš ty?

Já bych to necharakterizoval jako návrat někam jinam ani jako odklon. Já si totiž myslím, že XML už je prostě všude, jen se o tom už nemluví, proto není tolik viditelné. Ale kam se člověk podívá, tam je XML.

Čím dál víc lidí dokumenty primárně pořizuje v XML, ať už je to DocBook nebo jiný formát. TeX je výborný sázecí engine, ale čím dál míň lidí používá TeX (LaTeX, ConTeXt nebo jiné nadstavby) jako primární formát pro pořizování dat. Je nešikovný a s daty pak nejde dělat skoro nic jiného, než je nechat TeXem naformátovat.

Znám spoustu lidí, kteří dříve používali TeX. Oni jej používají pořád, ale již ne jako primární zdroj dat. Data dnes mají v XML, z něj transformací vygenerují třeba TeXový zdroják a z něj generují PDF.

Ale na webu se prosadil JSON. A to na mnoha místech, kde vévodilo XML.

Já bych s JSON počkal pár let, jak se to vyvine. JSON byl populární v tom, jak byl jednoduchý. Syntakticky je to podmnožina JavaScriptu. Když chcete v AJAXové aplikaci data ze serveru, stačí poslat XMLHttpRequest, na výsledku zavolat funkci eval a je hotovo – v paměti je objekt s daty.

Na malé pokusy a hraní to bylo úžasné. Ale jakmile začnete JSON používat v masovém měřítku, musí se řešit problémy, např. že eval není bezpečný a měl by se tam vložit parser. Pak se zjistí, že by bylo dobré data validovat, tak se přidá schéma. Takže se udělá úplně to stejné, co už v XML je.

Já osobně tohle vidím jako jistý odklon od XML. Vybere se jen to, co je na XML dobré, ale protože lidem něco na XML vadí, tak hledají jinou cestu.

Oni budou hledat jinou cestu, ale budou opakovat chyby, které se dělaly při vývoji XML. Protože u XML se stejně opakovala cesta z vývoje SGML nebo jiných jazyků. Historie se pohybuje v kruzích. Někteří lidé mají z nějakého důvodu alergii na špičaté závorky, tak se v JSON používají složené závorky. Já si myslím, že pro větší kusy dat je to ještě méně přehledné než XML, ale to je věc názoru. Řada lidí si myslí, že nejlepší by bylo psát v LISPové syntaxi, tedy v kulatých závorkách, ale to už tu taky bylo.

A proč lidi začali JSON používat? Protože v JavaScriptu jsou nemožná API pro práci s XML. Webové prohlížeče používají DOM, což je z existujících XML rozhraní skutečně to nejhorší. Minimálně co se týče praktické použitelnosti. Kdyby v JavaScriptu šlo přijmout data v XML a rovnou z nich udělat v paměti objekty, tak se JSON možná neprosadil. Objevily se již návrhy na zlepšení např. E4X, které implementuje Mozilla.

Já se JavaScriptu snažím vyhýbat. A myslím, že by měly vzniknout nadace a sanatoria pro vývojáře webových aplikací, kteří musí psát interaktivní aplikace v JavaScriptu. (smích) Dnes je to ovšem už lepší, prohlížeče jsou kompatibilnější a všichni používají knihovny, které je od rozdílů odstíní.

Web je v tomhle specifický. XHTML má své problémy, takže to pověst XML na webu trochu pošramotilo. Ale v mnoha jiných oblastech se již XML pevně usídlilo.

Jiří Kosek

Proprietární technologie jako XAML v Silverlightu ukazují, že trh si řešení, která vedou k rychlejší a bezpečnější tvorbě aplikací, žádá.

Co konkrétně se podle tebe nepovedlo na XHTML 1.0? A co na XHTML 2.0? V čem se mělo postupovat jinak?

Začněme u XHTML 1.0. Největší problém byl v tom, že ten jazyk nenabídl nic nového, co by uživatele motivovalo opustit HTML – možnosti zůstaly stejné jako u HTML 4.01, jen se zpřísnila syntaxe, což byla pro mnoho autorů spíše komplikace. Na technické úrovni byly v XHTML 1.0 také chyby – například tím, že se vyžadovala přítomnost !DOCTYPE a specifikace byla nešikovně napsána, nebylo možné držet se striktně XHTML 1.0 a přitom využívat výhody XML, jako možnost mixovat SVG, MathML nebo vlastní sady značek v dokumentu XHTML.

Problém byl i na straně tvůrců prohlížečů. Microsoft dosud XHTML podporuje jen v rovině rétoriky. Nevím jak dnes, ale v začátcích Mozilla neuměla XHTML vykreslovat postupně během načítání zdrojového kódu stránky – čekala, až se načte celý dokument, z něj se vyrobil DOM a až ten se předal vykreslovacímu jádru. Pro větší stránky přenášené přes pomalejší připojení to byla z hlediska uživatelského požitku degradace oproti HTML, které se vykreslovalo progresivně.

Jiří Kosek

Vývoj CSS3 trvá tak dlouho, protože CSS3 nikdo nepotřebuje.

A XHTML 2.0?

XHTML 2.0 se hodnotí těžko, protože mnoho klíčových věcí se v návrhu specifikace pořád ještě mění. První návrhy XHTML 2.0 zcela odřízly zpětnou kompatibilitu s XHTML – používal se jiný jmenný prostor než pro XHTML 1.0. Pro prohlížeče tak dokumenty XHTML 2.0 byly zcela neznámé dokumenty obsahující zcela neznámé elementy.

Na tak radikální změnu nebyli připraveni autoři stránek a hlavně výrobci prohlížečů. Snad žádný výrobce prohlížeče neohlásil záměr XHTML 2.0 v této podobě implementovat. A možnosti CSS jsou pořád nedostačující na to, aby se zobrazení a chování XHTML 2.0 dokumentů popsalo pouze pomocí něj a nebyla nutná speciální podpora v prohlížeči.

V poslední době se autoři XHTML 2.0 rozhodli radikálnost návrhu trochu omezit, například se vrátili zpět k původnímu jmennému prostoru XHTML. Jenže v té době již ve W3C pracovala nová pracovní skupina HTML vytvářející HTML5. HTML5 však kromě HTML syntaxe definuje i způsob serializace do XML – je to v podstatě XHTML (někdy se označuje jako XHTML5), ale elementy a atributy jsou stejné jako v HTML5. Takže v současné době W3C pracuje na dvou „nástupcích“ XHTML 1.0, tj. na XHTML 2.0 a na XML serializaci HTML5 (XHTML5), kteří nejsou vzájemně kompatibilní. To je ožehavý problém, který bude potřeba na půdě W3C nějak vyřešit.

Samozřejmě z principiálního hlediska je myšlenka psaní webových aplikací více deklarativním způsobem pomocí XHTML+XForms+XBL+SVG+S­MIL zcela správná. Je to rozhodně lepší než tuny javascriptového kódu a frameworků, které se dnes s každou stránkou načítají a provádějí. Konec konců proprietární technologie jako XAML v Silverlightu ukazují, že trh si řešení, která vedou k rychlejší a bezpečnější tvorbě aplikací, žádá.

Uvidíme, zda si v budoucnu XHTML svou pošramocenou pověst vylepší. Obávám se, že to bude chvíli trvat, naději však dává mobilní web, kde se XHTML zcela běžně používá.

Jinak častému argumentu proti XHTML – příliš striktní syntaxi nevěřím. Jednak opravdu není problém dokumenty psát tak, aby syntaxi neporušovaly, zvláště pokud člověk používá vhodné nástroje pro editaci kódu. Navíc při vhodném výkladu specifikací prohlížečům nic nebrání v tom, aby se z chyb v XML zotavily a něco zobrazily.

Jiří Kosek

Řekněme, že mám geniální nápad a chtěl bych z něj vytvořit specifikaci u W3C. Mohl bych jen tak přijít, W3C by pro mě založilo pracovní skupinu a já bych s pár kamarády začal specifikaci vytvářet? Nebo je to složitější?

S pár kamarády ve W3C těžko, protože o tom, kdy vznikne pracovní skupina, rozhodují platící členové. Když několik členů chce na něčem pracovat, řeknou, že by chtěli založit pracovní skupinu. Následně W3C schvaluje, zda cíl skupiny zapadá do jejího kontextu a pokud někdo není zásadně proti, skupina vznikne.

Pokud bys skupinu chtěl jako jednotlivec, musel bys přesvědčit několik platících členů, aby takový návrh podali a z tebe udělali invited experta.

Z toho je vidět, že platící členové mají zásadní slovo a vliv na budoucnost celého W3C.

Jistě, W3C je přece jejich konzorcium. Plus z historických důvodů má silné slovo ředitel W3C Tim Berners-Lee, ale jinak je to sdružení členů.

Tímto způsobem v zásadě funguje většina standardizačních organizací, např. OASIS a ECMA. Jediný, kdo funguje jinak, je ISO. V něm jsou členy jednotlivé státy, resp. jejich národní standardizační instituce.

Kdybys měl srovnat W3C, OASIS a ISO. Která organizace ti připadá nejlepší a proč? Která má procesy postaveny nejlépe?

Těžko soudit, jestli nejlépe. Záleží, co člověk sleduje. Kupříkladu W3C dokáže být ze všech nejagilnější. Jsou schopni nejrychleji specifikaci vyvinout a dotáhnout do konce.

To ale zní docela paradoxně, když se podíváme, jak dlouho trvá vývoj CSS3.

Vývoj CSS3 trvá tak dlouho, protože CSS3 nikdo nepotřebuje. Tam není poptávka.

Ale přece webdesigneři si už téměř 10 let stěžují, že tu CSS3 dávno mělo být.

Jenže webdesigneři píší kód pro prohlížeče. Museli by vytvořit nějaký tlak na vývojáře prohlížečů. Ale webdesigneři nejsou skupina, která vytváří tlak na vývojáře prohlížečů, ten vytváří uživatelé. A uživatelům je jedno, jakou verzi kaskádových stylů prohlížeč podporuje.

Ono uživatelům by bylo jedno, kdyby se dodnes používal tabulkový layout. Chtějí si prohlížet stránky, nakupovat, bavit se. Je jim jedno, zda je stránka udělaná v tabulkovém layoutu, v kaskádových stylech nebo ve Flashi. Hlavně potřebují, aby to fungovalo. A web tak nějak funguje.

Že by to šlo technologicky udělat lépe, že CSS3 obsahují super možnosti pro tvorbu layoutu a weby by se designerům dělaly líp, šlo by snáze vytvořit web, který bude dobře vypadat na malém monitoru i na velkém, to je všechno pravda, ale samo o sobě to nestačí.

Proč je tedy W3C agilní?

W3C je agilní, protože nejčastěji pořádají telekonference a osobní setkání. To samozřejmě vyžaduje poměrně hodně času a je to i finančně náročné, čili těžké pro jednotlivce (invited experta) se účastnit. Nyní, když na firmy dopadá ekonomická krize, jedná se o problém i pro členy z velkých firem. Škrtají se rozpočty a první, co se škrtá, je cestování na standardizační meetingy, protože z toho firma nemá okamžitý příjem.

A další organizace? Jak je na tom OASIS?

OASIS osobní setkání téměř nemá. Většinu věcí řeší e-maily a na telekonferencích. To je dobré, jednání se může účastnit mnohem víc lidí, protože tam nejsou finanční náklady na cestování. Na druhou stranu to jde celé pomaleji.

Když jsme se bavili o OOXML – jeho protipólem je podobný standard ODF vyvíjený v OASIS, jehož vývoj se vleče. Hodinová telekonference jednou týdně zkrátka nikdy nenahradí týdenní osobní setkání, kde se nedělá nic jiného, než že se řeší problémy – tam jde vše samozřejmě mnohem rychleji.

A ISO?

ISO, to je takový kostlivec. U něj hodně záleží na pracovní skupině. Například SC34 bylo opakovaně útočištěm pro technologie, které v nějakou chvíli nebyly mainstreamové, ale prostě určitá část expertů si myslela, že je to lepší, než co dělá W3C.

Takže zatímco W3C mělo XML schémata, která spoustu věcí neřeší ideálně, v ISO se standardizoval RELAX NG nebo třeba Schematron, který některé věci doplňuje. Pokud se  podíváte na XML schémata ve verzi 1.1, přijímají ze Schematronu i RELAX NG to, co se ukázalo jako nejvíce potřebné, takže se to ovlivňuje i zpětně.

Můžu reklamu? Na konferenci XML Prague v březnu tady v Praze bude Michael Kay mít přednášku o nových funkcích schémat 1.1. Koho to zajímá, může se zúčastnit.

(Pozn. redakce: Zdroják je mediálním partnerem konference XML Prague.)

XML dort

Jiří Kosek navrhl „XML dort“, který dostal Norman Walsh ke svým 40. narozeninám.

V SC34 se vyvíjejí i Topic Maps, které lze z jistého úhlu pohledu použít na podobné věci, jako  sémantický web od W3C. Ale nejsou tolik abstraktní a na tak nízké úrovni, takže se v nich lépe modeluje řada druhů aplikací.

Pokud někoho zajímají věci, které dělá SC34, a chtěl by se na nich podílet, vylepšovat standardy nebo dělat prototypové implementace, nechť se mi ozve. Rád se s ním o tu nevděčnou práci podělím, budu mu přeposílat pracovní návrhy, aby za Českou republiku vzniklo víc a lepších připomínek.

Stejně tak, pokud někdo najde chybu v ISO verzi OOXML nebo ODF. Ať mi ji pošle, já ji postoupím na odpovídající místa.

Než se s tebou rozloučím, mám poslední otázku. Slyšel jsem, že píšeš další knížku. Povíš nám, o čem bude?

Je to pravda. Jedná se o knihu o práci s XML v PHP. Už mi chybí napsat jen předmluvu a závěr.

Takže vyjde ještě letos?

Raději nebudu dělat žádné sliby, ale pokud všechno půjde dobře, doufám, že by mohla vyjít letos.

Byl to takový můj rest. Do mojí, dnes už prehistorické, knihy o PHP3, se o XML nic nevešlo. To mi bylo líto. Na druhou stranu je to možná dobře, protože ve verzi 3 byla podpora XML skoro nulová.

(Pozn. redakce: Minulý týden byl plný text dnes již historické knihy PHP – tvorba interaktivních internetových aplikací zveřejněn a nabídnut volně ke stažení.)

V PHP verze 4 byla podpora XML všelijaká. Ve verzi 5 už je rozumě použitelná. Byť PHP má řadu problémů, do teď pořádně nepodporuje Unicode, což při práci s XML je nutné různě obcházet, ale už v něm z XML rozhraní najdeme vše, co je potřeba.

V téhle knížce budou popsaná všechna XML rozhraní v PHP5 a jak je používat. A také tam budou  popsány základní XML technologie, např. syntaxe, schémata a transformace. Lidem, kteří potřebují s XML pracovat v PHP, by měla stačit. Je nakonec dobře, že se XML do knížky o PHP3 nevešlo, protože svými rozměry se jí tahle kniha skoro blíží.

Držím palce, ať se i další tvé knize daří a děkuji za rozhovor.

Otázky za Zdroják kladl Martin Hassman, fotografie pořídila Ivana Dvorská a Jiří Kosek.

Sledujte rubriku rozhovory

V rubrice rozhovory na Zdrojáku najdete i další zajímavé rozhovory s osobnostmi z oboru:

Jaká bude budoucnost XML?

Vystudoval jsem biochemii. Vymyslel jsem a založil Zdroják. Jsem vyhlášeným expertem na likvidaci komentářů. Nejsem váš hodný tatínek, který vás bude brát za ručičku, já jsem zlý moderátor diskusí. Smiřte se s tím!

Věděli jste, že nám můžete zasílat zprávičky? (Jen pro přihlášené.)

Komentáře: 35

Přehled komentářů

radino XML a JSON
volca Re: XML a JSON
Tomas Z. Re: XML a JSON
radino Re: XML a JSON
webdev Re: XML a JSON
firestarter Redakčně smazáno
onyx Zobrazování XML v prohlížečích
vlabra Re: Zobrazování XML v prohlížečích
Jozef Benko Re: Zobrazování XML v prohlížečích
Bubák Re: Zobrazování XML v prohlížečích
Sten Re: Zobrazování XML v prohlížečích
smilelover RE: Jiří Kosek: XML už je všude
Martin Hassman RE: Jiří Kosek: XML už je všude
Anonym RE: Jiří Kosek: XML už je všude
Martin Hassman RE: Jiří Kosek: XML už je všude
JS RE: Jiří Kosek: XML už je všude
smilelover RE: Jiří Kosek: XML už je všude
Tomas Z. RE: Jiří Kosek: XML už je všude
smilelover RE: Jiří Kosek: XML už je všude
Tomas Z. RE: Jiří Kosek: XML už je všude
JS RE: Jiří Kosek: XML už je všude
smilelover RE: Jiří Kosek: XML už je všude
Petr Diky
cynan -
MazeGen Díky za rozhovor
slady JSON
Martin Hassman Re: JSON
slady Re: JSON
Martin Hassman Re: JSON
mat jo a rozsirovat se bude
martin Re: jo a rozsirovat se bude
martin Re: jo a rozsirovat se bude
Anonym Re: jo a rozsirovat se bude
mirozbiro Re: jo a rozsirovat se bude
mega Teorie vs praxe
Zdroj: https://www.zdrojak.cz/?p=2944