Hlavní navigace

Proč XML není jen bublina

Petr Cimprich 17. 4. 2003

Před několika týdny jsem na root.cz komentoval provokativní článek Tima Braye o příliš složité práci s XML. Příběh má své pokračování, které znovu stojí za zmínku. Mimo jiné nabízí rekapitulaci důvodů, proč XML není jen nafouknutá bublina, jež může každou chvíli splasknout.

Odkazy na článek, který vše způsobil, a shrnutí ohlasů v diskusní skupině XML-DEV obsahuje původní komentář „Příliš obtížné XML?“. Souhrn dalších názorů z XML-DEV nabízí opět Kendall Grant Clark na XML.com. Mezi těmito názory převažuje spíše nesouhlas. Většina reagujících programátorů trvá na tom, že XML jejich život nekomplikuje, ale naopak usnadňuje. Objevily se ale také reakce typu „jen se podívejte, spoluautor XML sám uznává, že se XML nepovedlo“. Proti podobným názorům se Tim Bray ohrazuje v novém článku Why XML Doesn't Suck. Tento článek je pěkným přehledem hlavních předností XML. Pojďme se na ně podívat.

Internacionalizace: XML důsledně a od začátku používá Unicode. Každý dokument XML obsahuje jednoznačnou informaci o svém kódování a použité znakové sadě. XML tak pomohlo ukončit éru nepřehledné džungle kódových stránek, která panovala až do konce devadesátých let, a zároveň přispělo k rozšíření Unicodu jako primární znakové sady.

Flexibilita: V XML je možné reprezentovat prakticky cokoli. Někdy to může být vhodnější, jindy zase méně, ale v XML zapíšeme divadelní hru stejně jako vektorovou grafiku nebo volání vzdálených procedur. Potřebujete bezpečně uložit nebo přenést libovolné informace? XML vám to umožní.

Interoperabilita: Magické slovo skloňované ve všech pádech už po desetiletí. Většina systémů se snaží o interoperabilitu na úrovni API, což je v praxi často problematické. Vždy se najdou implentace, které se snaží být aspoň o trochu „standardnější“ než ty druhé. Spolehlivé obvykle bývají jen ty systémy, které jsou založeny na jediné implementaci (nebo přinejmenším na společné knihovně základních tříd). XML je skromnější. Zaručuje pouze interoperabilitu na úrovni syntaxe (resp. gramatiky), ale zato se na ni můžete spolehnout. Vždy lze jednoznačně určit, zda je ten který dokument správně zformován (well-formed). Vždy lze rozhodnout, zda za chybu odpovídá autor dokumentu, nebo ten, kdo se jej snaží přečíst. Pokud jde o gramatiku, totéž platí o validaci proti danému schématu.

Stabilita: Datové formáty zastarávají stejně jako média, na kterých jsou data ukložena. XML tu s námi bude dlouho, určitě déle než různé binární formáty momentálně oblíbených aplikací. Chcete-li, aby vaše informace byly použitelné ještě za deset nebo více let, je jejich uložení v XML patrně tím nejlepším, co můžete udělat.

Ve stejném článku Bray také reaguje na oblíbené argumenty odpůrců XML. Mnohé z nich se opakovaně objevují také v diskusích na root.cz, proto snad nebude nezajímavé některé z reakcí uvést.

XML je zbytečně upovídané. Možná. Ale vzhledem k nárůstu přenášených multimediálních dat nezabírají většinou textové značky významnou část šířky přenosového pásma. Je-li to třeba, dá se XML účinně zkomprimovat. Pokud hraje roli každý bajt, nepoužívejte XML.

Zbytečně existují dva různé způsoby, jak ukládat data – elementy a atributy. Použití elementů a atributů je věcí citu. Atributy mají blíž k metadatům popisujícím elementy, ale nejedná se o striktní pravidlo. Pokud citlivě použijete elementy i atributy, můžete v XML vytvořit lepší aplikaci. Co se vám víc líbí?

<a>

  <href>/</href>
  <name>root.cz</name>
</a>

nebo

<a href="/">root.cz</a>

Standardy vystavěné nad XML jsou příliš složité a je jich příliš mnoho. To je pravda. Nikdo vás ale nenutí je používat. A XML je v tom nevinně; nemůže nést odpovědnost za všechny své aplikace. Ze všech aplikací, jazyků, API nebo schémat si vyberte jen to, co se vám hodí. Ne každé doporučení W3C musí být nutně skvělé a nikdo ani nemůže znát každou novou verzi každé specifikace.

To by snad jako ukázka mohlo stačit. Většina stížností na XML plyne z nepochopení jeho skutečného významu. Tím není XPath, XSLT, XQuery nebo XAnything, ale internacionalizace, flexibilita apod., viz výše. Nikdo pochopitelně netvrdí, že v pozici, v jaké je dnes XML, nemohl být nějaký jiný formát. XML mohlo při zachování všech svých předností vypadat úplně jinak. Mohlo, ale nevypadá. Dnešní syntaxe má velkou výhodu, že opticky připomíná HTML, které zná snad každý, kdo jen letmo zavadil o informační technologie. Tím se hodně snižuje počáteční bariéra při zvládání nového formátu. XML dávno překonalo kritickou mez rozšíření. Dnes každý musí podporovat XML mimo jiné i proto, že to dělají všichni ostatní. Je směšné bezhlavě nasazovat XML i tam, kde se to vůbec nehodí, ale stejně směšné je tvrdit, že dnešní jediný univerzální a globálně přijímaný formát nepřináší užitek.

Našli jste v článku chybu?

28. 4. 2003 9:44

paskma (neregistrovaný)

No to je mi bomba. Místo jakz takz rozumneho XML budeme data uladat v nejakem demetnim tricet let starem cecku? Me by se treba libilo ukladat data jako zdrojak v Ade95 (a bylo by to mnohem hezci, nez C). To by me zajimalo, jak by to ostatni nacetli. XML je fajn, protoze jde mimo programovaci jazyky.

22. 4. 2003 9:57

querulant (neregistrovaný)

To, co prezentujete ako Vase riesenie ma jeden vazny problem - nie je to systemove riesenie - je to bohapusty hack. Totiz, ked zmiesate funkcnost s datami (aspon tak som to pochopil) tak vam to bude fungovat pre male programy v pohodicke, ale ked vam projekt trochu narastie, tak to moze vyvolat viac problemov, nez osohu!!!
Mozete pokojne pouzivat sposob spustenia konfiguraku, ale nechcite, aby to niekto standardizoval, to je nonsens...


Root.cz: Telegram spustil anonymní blog Telegraph

Telegram spustil anonymní blog Telegraph

Vitalia.cz: Říká amoleta - a myslí palačinka

Říká amoleta - a myslí palačinka

Vitalia.cz: Jmenuje se Janina a žije bez cukru

Jmenuje se Janina a žije bez cukru

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

Vitalia.cz: 9 největších mýtů o mase

9 největších mýtů o mase

DigiZone.cz: ČRa DVB-T2 ověřeno: Hisense a Sencor

ČRa DVB-T2 ověřeno: Hisense a Sencor

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

120na80.cz: Vitaminová abeceda

Vitaminová abeceda

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Podnikatel.cz: Zavře krám u #EET Malá pokladna a Teeta?

Zavře krám u #EET Malá pokladna a Teeta?

Vitalia.cz: Znáte „černý detox“? Ani to nezkoušejte

Znáte „černý detox“? Ani to nezkoušejte

Podnikatel.cz: 1. den EET? Problémy s pokladnami

1. den EET? Problémy s pokladnami

Vitalia.cz: To není kašel! Správná diagnóza zachrání život

To není kašel! Správná diagnóza zachrání život