YAML - je vizuální markdown jazyk - a už před nástupem JSONu jsem jej vidět používat pro konfigurace, pro poznámky. V JSONu a XMLku je ta vizuální stránka potlačená.
XMLko je fajn, ale některé z mých nepříjemných zážitků jsou spojené s konfigurací Java aplikací v XML. Případně číst XML logy taky nemusím.
Srovnejte si složitost SOAPu a RESTu - tam mám pocit, že designéři se trochu utrhli s řetězu. Asi by mohl docela dobře existovat REST nad XML, ale k výměně technologie obvykle musí být víc důvodů než jeden - byť některé důvody jsou marketingové nebo podmíněné nástupem nové generace programátorů, která starší technologii nezvládla nebo odmítla.
V programování hraje velkou roli lidský faktor a dochází k cyklické obměně technologii - jednak se mění hw, mění se požadavky zákazníků, a většina technologii má tendence bobtnat - což není problém, když danou technologii zastihnete na začátku cyklu jako junior nebo mladý senior - změny stíháte absorbovat. Pokud ale k technologii přistoupíte v pozdějším cyklu, tak komukoliv bez let zkušeností letitá technologie musí přijít jako monstrum - do rozjetého vlaku se dost špatně nastupuje - a začíná se znova s něčím jednoduchým, přehledným, rychlým elegantním, z čehož se za 10-20 let stane monstrum.
Na konfigurační soubory, které se vejdou na jednu obrazovku a mají maximálně tři úrovně odsazení, je YAML krásný formát. Jenže každý takovýhle krásný jednoduchý konfigurační soubor časem roste a roste. A to je problém všech těchhle formátů, které mají být jednodušší než XML. Všechny fungují na jednoduchých příkladech, ale se stoupající komplexitou toho, co mají popisovat, křivka použitelnosti strmě klesá. Podívejte se třeba na pradědečka všech těchhle formátů „jednodušších než HTML/XML“ – wiki, konkrétně MediaWiki syntax. Když se podíváte na zdroják libovolné stránky na Wikipedii, je tam plno nesrozumitelných šablon, parametry se píšou pokaždé jinak a bez nápovědy nenapíšete ani externí odkaz. O co přehlednější a srozumitelnější by ten zdroják byl, kdyby se nepoužíval „jednoduchý“ wiki jazyk, ale „komplikované“ XML.
Konfigurace Java aplikací přes XML bývá problém, když je pro konfiguraci použitý prakticky vlastní jazyk serializovaný do XML. Jde to udělat, ale to neznamená, že je to dobrý nápad – a není to chyba XML. A zrovna ty logy – ony i v tom textovém souboru mají nějakou strukturu, která se zápisem do čistého textu ztratí, a pak ji zase další nástroje pro analýzu logů pracně obnovují. Nepřipadá mi zase tak špatný nápad dělat to opačně – logovat strukturovaná data, a pak je případně pro zobrazení člověku hezky zformátovat. Ostatně logování v cloudu už přesně k tomuhle vede, protože logy z desítek strojů už nejde zpracovávat tak, že si budete pročítat textové soubory.
U SOAPu je ten problém, že se snažil vyřešit všechny problémy světa a vyhovět všem. REST nemá formát specifikovaný, může se použít i XML a často se používá, a oproti použití JSONu to má spoustu výhod. Použít pro REST JSON má vlastně jedinou výhodu – snadno se s tím pracuje v prohlížečích, protože prohlížeče nemají rozumné nástroje pro práci s XML (přestože pracují s DOMem, který je přirozenou reprezentací XML).
S tou obměnou technologií v cyklech je to pravda. Mně ale na těch opakovaných snahách vymyslet „jednoduché XML“ vadí to, že se nepoučí z předchozích případů. Takže pořád dokola vznikají WikiWiki, Markdown, JSON, YAML a vždy se na to vrhne spousta lidí s pocitem, že teď už to konečně bude jednoduché – a nedochází jim, že ta složitost není v jazyce, ale v těch dokumentech, a že pro zápis složitějších dokumentů prostě je potřeba určitá robustnost, která u jednoduchých dokumentů skutečně bude trochu překážet. Akorát že se vyplatí naučit se ten nástroj používat, i když je na jednoduché dokumenty trochu neohrabaný, protože se to mnohonásobně vrátí v budoucnosti.
XML by pomohla jedna věc – vydat novou verzi, ve které bychom se vykašlali na DTD a uživatelské entity, a ponechalo by se tam to, co se dnes z XML reálně používá. Problém je, že mnozí by chtěli nejspíš vyházet i XML instrukce a/nebo CDATA, na čemž se nejspíš nikdo neshodne, tak se do toho nikdo raději ani nepouští.