Samozřejmě, ze je to technologický dluh. Rychle zmaštěná aplikace sice ušetří nějaký čas na začátku, ale následně se ti to vrátí. Někteří vývojáři si bohužel neuvedomuji, že navrhnout formát není totéž jako vybrat knihovnu pro serializaci. Nebo, že mavrhnout API není totéž jako zpřístupnit pro vzdálené volání par metod pomoci nějaké technologie.
To nerozporuju. Mě zajímá, jak vznikne tech. dluh, když místo XML použiju JSON.
Už třeba takový
detail, že JSON neumí komentáře. Často vídám testery nebo lidi, kteří si potřebují provolat nějakou REST/JSON službu – trpí tím, že si nemůžou část požadavku zakomentovat. Musí to vyjmou do schránky, napsat něco jiného, ve schránce se jim to ztrácí, tak to musí vykopírovat do jiného programu. To je práce jak za krále Klacka. Možná by mohli nastoupit někam do nevolnictví. JSON prostě brzdí vývoj a testování.
Kdyby to bylo v XML, tak snadno část zakomentují a můžou zkoušet posílat alternativní požadavky nebo si tam dopsat poznámku, vysvětlivku. Pro konfiguráky to platí dvojnásob.
Pak tam taky chybí jmenné prostory, takže ten formát není rozšiřitelný. Jsou jakési pokusy, jak to tam dohackovat, ale je to takové drbání se levou rukou na pravém uchu.
Hodně velký problém byl (a často stále je) chybějící infrastruktura – editory, validátory, schéma, dotazovací jazyk, transformační jazyk… něco z toho se jim už podařilo dovyvinout, znovu-vynalézt kolo, ale celé roky znamenalo použití JSONu vracet se někam do středověku… a zbytečně.
Někdy je taky problém s tím, že nezáleží na pořadí klíčů, takže musíš načíst vše a pak se teprve můžeš rozhodovat, jak jednotlivé hodnoty interpretovat. Na to narazíš, když chceš udělat nějaký pružnější/variabilnější datový model, kde můžeš mít různé typy (např. dědičnost). Pak se to musí všelijak obcházet přes pole (která zachovají pořadí, ale je to hnusné), nebo natáhnout vše do paměti a pak teprve zpracovat, což zase brání proudovému zpracování dlouhých dat. Nakonec by si člověk musel napsat vlastní parser a generátor.
Našlo by se toho víc, ale jako příklad to snad stačí.