Já jsem si myslel, že i XML již došel před několika lety dech, takže mě překvapuje, že někdo ještě přechází na zastaralý formát, který se i pomalu parsuje a nepřejde rovnou na json. A ten json by se možná ani nemusel komprimovat, pokud by se vypustily mezery.
Řekl bych, že důvodů může být víc. Gtk a kód Gimpu už teď používají různé součásti v xml, tak proč v tom dělat zmatek přidáním nového jsonu. Druhá věc je, že xml v zipu je imho dnes takový víceméně standard, vezměte si třeba docx, odf, nebo třeba xml z inkscapu, všechno xml.
A on tam bude asi i nějaký technický důvod, co v xml udělat jde a v json ne, ale ten teď neumím zodpovědět.
Ono je to jednoduché: element v XML může mít více atributů, JSON je v podstatě jen klíč:hodnota. Ne, že by to nebylo (celkem snadno) řešitelné, ale tak nějak se s tím pak blbě dělá.
Osobně jsem nepochopil, v čem je výhoda těch XML atributů, a čím se to liší od dalšího vnořenýho elementu.
Je tam nějaká významová nebo funkční nuance?
<faktura customerId=11>
<položky>...</položky>
<faktura>
vs
<faktura>
<customerId>11</customerId>
<položky>...</položky>
<faktura>
Ne, že by to nebylo (celkem snadno) řešitelné, ale tak nějak se s tím pak blbě dělá.
Proč? Je tam nějakej logickej problém? Nebo je to kvůli dostupným nástrojům?
Přesně ten problém, který jste popsal: na první pohled nerozeznáte vnořený element od atributu elementu (a je potřeba to vědět).
Většinou to je opravdu jedno a nemá to vliv ani na funkci rostlináře.
Atribut je max 1 a je to kontrola na urovni jazyka. Je to v principe vzdy jedinecna vlastnost viditelna pre kazdeho. Nejde to zmenit v zmysle "teraz sa nieco pridalo, pridam to tam viackrat".
Potom samozrejme v scheme je mozne to obmedzit aj v scheme, ale na pochopenie toho treba citat schemu.
Je to proto, že XML původně vznikl jako formát pro značkování textu. A v textu je podstatně lepší značkovat takto:
Toto je opravdu <style bold="true" emphasis="true" color="red" author="Big Boss">důležité</style> upozornění!
Než takto:
Toto je opravdu
<style>
<bold>true</bold>
<emphasis>true</>
<color>red</color>
<author>Big Boss</author>
důležité
</style>
upozornění!
Pletete dohromady html a xml, coz jsou zcela nezavisly veci (a vzdycky byly). XML totiz (narozdil od html) byl vzdy strukturovany datovy format a NIKDY to nebyl format pro zanackovani textu.
Rozdil mezi tagem a parametrem je celkej zjevny, v tagu jsou nejaka data, parametr urcuje nejakou vlastnost tech dat. A pokud jde o zobrazovani ... (se kterym to nema zhola nic spolecnyho) tak na to existujou v XML sablony.
Hezkou ukázkou rozdílu jsou data z jedné meteostanice. Ta je umí podávat ve dvojím formátu:
JSON:
{"timestamp":"2026-08-19 19:22:06 +0200","temperature":"25.5","pressure":"994.5824493"}
XML:
<weatherdata timestamp="2026-08-19 19:22:06 +0200">
<temperature type="float" units="Celsius">25.5</temperature>
<pressure type="float" units="hPa">994.5824493</pressure>
</weatherdata>
Zajisté, ten JSON je stručnější - jen musíte vědět, v jakých jednotkách to zrovna pracuje, na co to zrovna někdo na té meteostanici přepnul.
V JSONu můžete taky poslat:
{
"timestamp":"2026-08-19 19:22:06 +0200",
"temperature": {
"unit": "C",
"value": "25.5"
},
"pressure": {
"unit": "hpa",
"value": "994.5824493"
}
}
Ano, můžu. Jen ta meteostanice to nedělá. ;D
Já jsem psal, že řešení je vcelku jednoduché. Jenže zároveň tím ztrácíte přehled o struktuře. Z onoho XML je vcelku zřejmé, že jde o záznam teploty a tlaku v určitý okamžik - ten (původní) JSON tomu též odpovídá. Vámi popsaná úprava však ke každému přidává další strukturu jednotka + hodnota.
Jednoduchý parser (třetí typ výstupu z programu k oné meteostanici):
XML:
weatherdata.timestamp="2026-08-19 19:22:06 +0200"
weatherdata.temperature=25.5
weatherdata.temperature.unit="Celsius"
weatherdata.pressure=994.5824493
weatherdata.pressure.unit="hPa"
JSON (jejich, chybí jednotky):
weatherdata.timestamp="2026-08-19 19:22:06 +0200"
weatherdata.temperature=25.5
weatherdata.pressure=994.5824493
JSON (vaše varianta):
weatherdata.timestamp="2026-08-19 19:22:06 +0200"
weatherdata.temperature.value=25.5
weatherdata.temperature.unit="Celsius"
weatherdata.pressure.value=994.5824493
weatherdata.pressure.unit="hPa"
Jasně, všechno je to krásně čitelné a zpracovatelné. Ale ta původní struktura mi je tak nějak sympatičtější.
Výhodou XML je i to, že ta stanice umí udělat HTML stránku čistě XSL transformací, v prohlížeči, bez scriptů - pro zpracování JSON to potřebuje spouštět (jednoduchý) JavaScript.
A ta výhoda je pak kde?
- musím použít "value", takže cesta k hodnotě je keyname.keyname místo keyname
- value není přímo obalená unit, takže předávat musím dva klíče (pro vyčíslení) míásto jednoho
Pomaly sa parsuje, ale ma "zadarmo" schemy, ktore hned vygeneruju aj struktury v programovacom jazyku. Ma aj standardizovane vyhladavanie pre tych, ktori to nechcu cele parsovat (XPath).
JSON ma tiez schemy, ale tam sa nepresadili, jq je jeden nastroj a nie siroko implementovany standard.
Aj ked je pravda, ze sa od XML ustupuje, stale je za mna viac pouzitelny.
XML je pořád výrazně lepší než JSON. JSON má oproti XML jedinou výhodu – když ho chcete ve velkém editovat ručně (ale nechcete tam dávat poznámky, což je u ruční editace časté).
Nekomprimovaný JSON s obrázkem by pořád byl obrovský.
XML má pro tohle použití jednu obrovskou výhodu – je od začátku navrženo jako rozšiřitelné. Vznikne nový plugin do Gimpu? Vytvoří si nový namespace a může si do XML ukládat svá data kam potřebuje. Tohle s JSONem nejde, tam si musí rozšiřitelnost každý nějak vymyslet po svém. Navíc XML má lepší možnosti definice schématu, můžete třeba předepsat, že důležité informace potřebné pro rychlé zobrazení musí být na začátku.
Navíc v grafickém editoru asi bude docela důležité ukládání čísel, přičemž JSON vůbec neřeší, že jsou různé reprezentace čísel v aplikacích. Je číslo v JSONu 32bitové celé číslo? Se znaménkem nebo bez? Nebo je 64bitové? Nebo je 32bitové nebo 64bitové v plovoucí řádové čárce? Nebo něco jiného?
Jenže XML vůbec nepředstírá, že přenáší čísla. XML přenáší jenom text, jako číslo ho můžete interpretovat. A při té interpretaci většinu lidí napadne ptát se, co je to za číslo. A obvykle to najdou ve schématu.
JSON se tváří, že přenáší číslo, schéma se ve spoustě případů neřeší, vždyť typy jsou přece přímo v JSONu. A pak se částka uloží do JSONu jako číslo a interpretuje se jako float nebo double…
jj, nejlepsi sou henty "moderni" formaty., ktery neumej ani rict, jestlit am ten prvek vubec muze byt, natoz jaky ma mit typ ... a pak se na to vymejslej vsemozny vzajemne zcela nekompatabilmi vohejbaky narovnavaku ...
KDL ale taky není všeobecně rozšiřitelné. Tam je hlavní výhodou čitelnost.
XML jako formát pro komunikaci mezi stroji by spíš nahradil třeba CBOR.
Ten umí reprezentovat konkrétní datové typy a je rozšiřitelný pomocí tag záznamů. A navíc je standardizovaný.
CBOR je binarni. To ma plusy i minusy. Tedy to neni rozhodne nahrada za json/xml. I kdyz json i xml se pouzivaji kde by se CBOR hodil vice. Ty "stringy" na presun dat se rozsirili, protoze autorum, a tem co to po nich udrzuji, umoznuji kouknout co to vlastne posilaji/prijimaji. Taky ten string ma (bohuzel) nejvetsi vyjadrovaci schopnost a halvne rozsiritelnost.
Ano, je binární, ale nese si svoji strukturu (narozdíl od ASN.1 nebo protobuf) a umí i sémantické tagy (narozdíl od MessagePacku). Je standardizovaný a rozšiřitelný včetně správy pod IANA - https://www.iana.org/assignments/cbor-tags). Má podporu pro schémata v CDDL.
> I kdyz json i xml se pouzivaji kde by se CBOR hodil vice.
No právě.
> Ty "stringy" na presun dat se rozsirili, protoze autorum, a tem co to po nich udrzuji, umoznuji kouknout co to vlastne posilaji/prijimaji.
Pro debugging se dá jednoduše převést do textové formy (jedna je standardizovaná [1], ale jednodušší věci jdou i přímo do jsonu).
[1] Diagnostic notation - https://www.rfc-editor.org/rfc/rfc8949.html#name-diagnostic-notation
Ale pochopitelně vím jak je to se setrvačností a komunitním vývojem. Takže si nedělám iluze o masivním rozšíření.
Taky se mi CBOR líbil, ale v životě jsem se s ním nesetkal u reálné aplikace, kterou jsem někde nasazoval (ve smyslu, že by měla závislost na nějaké CBOR knihovně třeba). To už spíš ten protobuf.
Což by potvrzovalo tu zmíněnou setrvačnost, nebo prostě "good enough" stav.
Používá se v kryptografii a viděl jsem ho v tokenech. Ale nikdy neměl ten marketing jako protobuf (který zase vznikl protože autoři z Google neznali ASN.1).
Dokonce i MessagePack má lepší marketing než standardizovaný CBOR :)
19. 8. 2026, 14:09 editováno autorem komentáře
zvláštní, nebo spíš docela typické je, že Go (taky od Googlu) pro změnu má ve standardní knihovně podporu pro ASN.1, ale ne pro protobuf. Namísto toho si přidali gob.
Ha, KDL vypada skvele. Konecne neco, do ceho clovek dokaze zapsat jednoduchou matici, aniz by se zblaznil ze zavorkovani nebo <> a porad to videl jako matici.
A ma to vic implementaci nez ten muj osobni tupy format co pouzivam pro sve potreby.
O kdl sem doted neslysel, a koukal jsem do toho dosti znechucene jakoze "proc dalsi jsonoxml". Pak sem si taky vsiml te matice. Ta vypada skvele. lLe stejen. `\` je jen zapisovy cukr ala bash(?), nebo to opravdu dela neco vice a dostanu array[][]?
nevim, budu muset podrobne prozkoumat.
Ja mam problem ze potrebuju ukladat ruzna data, ktera si pak potrebuji prohlizet lidi, a pripadne je potrebuji lehce upravovat, nebo z toho neco zkopirovat, nebo nahradit. A dost casto se mi objevuji i matice (ne pouhe vektory), kde clovek potrebuje zmenit jedno dve cisla, pripadne z jinych mereni a formatu prepsat matici 3x4 a pod. Vetsina formatu s maticema nepocita a testy na uzivatelich dopadly spatne, json je nevhodny, yaml taky, xml katastrofa, lidi v tom delaji chyby a pak neco nefunguje. Muzu dodelavat ruzna GUI aby to tam lidi nastrkali spravne, ale to je pruda. Takze pouzivam nejaky upraveny vlastni neco jako ini, ale je to domaci reseni a rad bych neco obecne prijimaneho.
Komprimace u XML me prijde jako nevyhoda.
Dala by se pochopit, kdyby to bylo z duvodu "kontejneru", ze k xml pridate bloby a obrazky.
Ale neskutecne to stezuje vyhledavani v souborech.. pro stare .doc mi staci hledat (napr. pres total commander, ale lze to aplikovat i pro strings, grep) textovy retezec v unicode formatu.. pro docx musite mit predem naindexovany vsechno - anebo porad rozbalovat cely kontejner :/
Neparsuje sa pomaly, stale je to format vhodnejsi na ukladanie dat ako JSON.
JSON sa presadil v API a to preto, ze javascript v prehlidacoch nic ine nevie.
XML ma schemu, ktora funguje, namespaces, lahsie sa edituje aj cita (pri hlbokom zanoreni) a po kompresii je rovnako velky ako JSON.
Tak zrovna na ukládání dat vhodnější rozhodně není. Vhodnější je pro interoperabilitu. Parsovat XML je náročnější ale nemyslím, že by to tady byl problém. A JSON se rozhodně neprosadil proto, že "javascript v prehlidacoch nic ine nevie" ale proto, že to bylo praktické. S touhle logikou by se XML neprosadil víceméně nikde -- a přece se prosadil. Protože obojí má své výhody i nevýhody.
"ale proto, že to bylo praktické."
Nikoli, prosadil se proto, ze to pisou patlalove, kteri o tom co pisou vubec nic nevedi a XML je prece "silene slozite". A jakmile to pak ma nekdo nekdy udrzovat, je jednodussi to napsat cely znova. Protoze kdyz do jsonu neco pridam, tak tim narozdil od xml rozbiju uplne vsechno.
A to je presne ten duvod proc je naopak XML ten vhodny format, protoze kdyz rekneme napisu prohlizec, a nekdo si vymysli ze do formatu prida nejakou novou vlastnost, tak ten prohlizec bude dal fungovat, jen nebude chapat tu novou vlastnost.
Viz treba epub. Chces indexovat nazvy a autory? Neni nic snazsiho ...
Parsovat XML je náročnější
Než JSON? V čem?
A JSON se rozhodně neprosadil proto, že "javascript v prehlidacoch nic ine nevie" ale proto, že to bylo praktické.
Ale JSON se prosadil proto, že v prohlížečích se na to zavolal eval() a data byla rovnou v paměti v nativních strukturách JavaScriptu. Zpočátku to byl vyloženě kód, který vytvořil proměnnou. Pak se řeklo, že se tomu dají nějaká omezení, aby se tam nemohl spouštět úplně libovolný kód, a pojmenování se ponechá na tom, kdo data načítá – ale pořád to šlo řešit pomocí eval(). Tak vznikl JSON. Nakonec se přišlo na to, že parsovat data pomocí eval() není zrovna bezpečné a do prohlížečů se doplnily funkce pro jeho parsování.
Ve skutečnosti uměly s XML prohlížeče pracovat daleko dřív, než měly nativní podporu JSONu. Ale použití JSONu bylo v prohlížeči daleko jednodušší.
> Ve skutečnosti uměly s XML prohlížeče pracovat daleko dřív, než měly nativní podporu JSONu.
Ano pre to sa vola AJAX AJAX.No je tam ale - prehliadace to nikdy neimplementovali dobre, napriklad nikdy nevedeli pouzivat namespaces.
> "Parsovat XML je náročnější"
> Než JSON? V čem?
Parsovat XML správně je o mnoho náročnější. Namespaces, CDATA atd. Napsat plně funkční a validní XML parser vlastně ani nejde, protože existují šedá místa (třeba XML v CDATA bloku v XML), která se nedají vždy interpretovat jednoznačně.
JSON je primitivní formát se všemi výhodami a nevýhodami z toho plynoucími.
A to ještě stále uvažujeme základní parsování bez kontroly pomocí DTD. Tj. stáhnout DTD, naparsovat DTD, pak parsovat ten vlastní XML dokument a u toho ho kontrolovat pomocí toho naparsovaného DTD.
Takhle se to ale v praxi často nedělá, pokud to není přímo zadání dané utility. Ale rozhodně to není žádná "blbost, aby Milan ukázal zbytečnou složitost" - např. je to důležité při porovnávání dvou XML souborů. Představme si příklad, kdy se dva XML soubory liší jen prohozením pořadí dvou tagů aa a bb (viz níže). Pokud by to byl zápis dokumentu ala HTML, tak jsou rozdílné, ale pokud by to byl XML soubor popisující atributy něčeho (jako JSON), tak jsou naprosto shodné. A to se, alespoň podle specifikace, program dočte až v DTD, kde jsou uvedena právě všechna ta složitější pravidla nad základní parsování, jako např. kde záleží na pořadí, jestli smí být tag uvedený vícekráte apod.
V GIMPu samozřejmě nečekám kontrolu pomocí DTD, protože tam kontrola proběhne tou vlastní importní rutinou. Ale jen pro zajímavost o XML.
<parent>
<aa>Nazdar</aa>
<bb>světe</bb>
</parent>
19. 8. 2026, 14:00 editováno autorem komentáře
Tak zakladni pravidlo je, ze elementy jsou v poradi (vektor), atributy nejsou v poradi (asociativni pole).
Ze mate use-case, ktery to uklada spatne, nebo vnasi dalsi zobecnujici chovani, neni problem XML.
Pokud jste chteli argumentovat prohoditelnosti, tak mozna vhodnejsi priklad by byl:
<b><i>text</i></b> vs <i><b>text</b></i>
A to ještě stále uvažujeme základní parsování bez kontroly pomocí DTD.
Jenže tu potřebujete jen ve specifických případech. V případě JSONu nemáte definované ani co se má stát, když jsou v mapě duplicitní klíče. Nebo v JSONu máte sice čísla, ale nikde není řečeno, jak se mají interpretovat.
Pokud se bavíme o situaci, kdy si vybírám formát XML nebo JSON tak, jak se běžně používají, není podle mne XML parser o nic složitější, než JSON. Jestli dokonce nebude XML parser jednodušší.
DTD som nevidel pouzit uz 20 rokov.
Hlavne v tomto pripade na richlosti naciatnia az tak nezalezi, lebo sa nacita raz, ked sa otvori projekt.
Namespace a CDATA nejsou nic komplikovaného.
existují šedá místa (třeba XML v CDATA bloku v XML)
CDATA začíná <![CDATA[, uvnitř nesmí obsahovat posloupnost ]]> a jsou zakončené právě sekvencí znaků ]]>. Jinak je text uvnitř pouze posloupnost znaků. Klidně tam můžete mít něco, co vypadá jako XML – ale budou to jen znaky menšítko, písmena a většítko.
JSON je primitivní formát se všemi výhodami a nevýhodami z toho plynoucími.
Parser JSONu musí řešit duplicitní klíče v mapě, escapování znaků – nemyslím si, že by byl jednodušší než XML parser.
> Parser JSONu musí řešit duplicitní klíče v mapě, escapování znaků – nemyslím si, že by byl jednodušší než XML parser.
Určitě jednodušší je, jen není přesně specifikované, co přesně JSON je, takže různé knihovny dojdou k různým výsledkům.
Nicméně u XML je to podobné. Třeba atributy mají být unikátní, což splním, když totéž napíši různými code pointy. Ale některé knihovny toto nepovolují a řeknou, že atribut je duplicitní.
Další nevýhoda XML je, že těch standardů je hodně. Jeden pro XML. Další pro namespace. Jiný pro schéma.
To už je bůhví kolikátý v pořadí a navíc není jednoznačný. Takže různé implementace se chovají různě a je to pak k ničemu. Nebo dokonce to někdy vede k bezpečnostním problémům, protože jedna implementace přečte jiný JSON než jiná.
když totéž napíši různými code pointy.
To je ovšem záležitost Unicode a na to samé narazíte u JSONu i jiných formátů, které mohou používat Unicode.
Další nevýhoda XML je, že těch standardů je hodně. Jeden pro XML. Další pro namespace. Jiný pro schéma.
Ty standardy jsou dva – XML a namespaces. Schéma je vedle a nemusíte ho řešit, stejně jako je vedle a nemusíte ho řešit u JSONu.
> To je ovšem záležitost Unicode
To je možné, ale point je, že se pak různé implementace chovají různě a standard se k tomu nijak nestaví.
Pokud to vnitřní XML obsahuje ]]>, tak řešíte jak to tam dostat.
JSON nemusí řešit identitu tagů (namespace s odkazem na dtd a to i několikrát s různými prefixy v různých částech dokumentu).
Duplicitní tagy, atributy atd řeší i XML. Ten formát je prostě mnohem složitější.
JSON sice navíc řeší (blbě) čísla, ale to je fakt trivialita na úrovni lexeru.
Pokud to vnitřní XML obsahuje ]]>, tak řešíte jak to tam dostat.
Ano, ale parsování je jednoznačné, není to žádné šedé místo. A řešení je jednoduché – ukončíte sekci CDATA, zapíšete tři znaky, otevřete sekci CDATA.
JSON nemusí řešit identitu tagů (namespace s odkazem na dtd a to i několikrát s různými prefixy v různých částech dokumentu).
DTD se dnes běžně nepoužívá. Tečka.
Duplicitní tagy, atributy atd řeší i XML.
Ano, ale má to jednoznačně vyřešené. Zdroj se buď jednoznačně rozparsuje, nebo parsování skončí chybou. A výstup všech parserů odpovídajících standardu bude stejný.
Ten formát je prostě mnohem složitější.
„Prostě“ není argument. Formát možná je složitější, ale to neznamená, že je složitější parser.
JSON sice navíc řeší (blbě) čísla, ale to je fakt trivialita na úrovni lexeru.
Ne, ten problém je na úrovni interpretace. Specifikace je napsaná tak, jako kdyby to bylo číslo s libovolnou přesností. Jenže JavaScript, ze kterého JSON vychází, má číslo jako 64bitové číslo v plovoucí řádové čárce. Takže JSON ve skutečnosti není ani podmnožina JavaScriptu, i když se tak tváří a vznikl tak.
S tymi cislami v JSOn-e je to este horsie, polovica parserov pocita ze su to 64-bitove cisla s destainou ciarkou, ale nesparsuju vsteky taketo cisla. Lebo JSOn mal v definici takeho mackopsa, co ma niektore vlastnosti 32-bitoveho int a niektore 64-bitoveho double.
Ked sa do toho pripletie 64-bitovy int tak uz ma problem.
Je to minove pole https://seriot.ch/security/parsing_json.html
jj přesně, proto říkat, že podporuje doubly vede k nedorozuměním při komunikaci, protože zase jiné knihovny bez problémů serializaci doublů provedou (ona to ale moc neřešila ani původní implementace pro JavaScript, prostě ve světě JavaScriptu je to vše takové hodně "best effort")
To bude zase pomalé. Nechápu, proč si nevyberou binární formát, který jde efektivně parsovat, ideálně pomocí SIMD instrukcí. Nebo formát, co se nemusí parsovat vůbec a jeho načtení odpovídá přímo strukturám v paměti.
Nechápu, proč si nevyberou binární formát, který jde efektivně parsovat, ideálně pomocí SIMD instrukcí.
Protože parsováním se stráví zlomek času a u formátu jsou podstatně důležitější věci, než rychlost parsování.
Nebo formát, co se nemusí parsovat vůbec a jeho načtení odpovídá přímo strukturám v paměti.
Tím už si všichni prošli před desítkami let a zjistili, že je to peklo.
Třeba možnosti zpětně kompatibilního rozšíření formátu (nové funkce se ignorují, ale zbytek je zpracovatelný).
Ale to přeci jde i v binárním formátu, co se rychle parsuje. Důkazem jsou již existující formáty obrázků.
A jde to třeba i u C struktur, které můžu rozšiřovat a starý kód, který očekával struktury s méně fieldy stále funguje - jen prostě nečte ty další fieldy.
Jen pak už nesmí následovat nic dalšího, protože ten starý kód nebude vědět, kde to začíná.
Binární formát je v pořádku, sám jsem tu zmiňoval CBOR.
Binární formát s přímým mapováním na paměť už je ale něco jiného.
Struktury v paměti narazí hned při přechodu mezi little- vs. big-endian, jiným ABI pro padding nebo při jiné délce intu mezi platformami. Navíc se typicky nedají zpracovat jako stream a musí se načíst celé.
Binární strukturovaný formát by byl fajn. Ale na XML existuje spousta nástrojů a jestli GIMP už XML používá, tak jde o "malou" změnu oproti ostatním možnostem.
A kolik platforem je dnes big-endian? Číselné typy pak můžete zvolit s konkrétní velikostí a padding i alignment ovlivnit.
Nechápu, proč si nevyberou binární formát,
Jen to ne, pak bude chtít uživatel něco upravit mimo gimp a bude muset mít specializované nástroje místo "hloupého" nahrazení textu. Nehledě na dopřednou kompatibilitu (v textu je jednodušší ignorovat neznámé fieldy než ve špatně navržené binární struktuře). Navíc je třeba o dost větší pravděpodobnost že takové LLM bude daný formát chápat z dokumentace aniž by se musel dělat nějaký specializovaný MCP server který ji to bude překládát. Za mě binární formáty jsou hezké, ale tam kde je třeba opravdu optimalizovat. Ale v době kdy téměř všichni uživatelé doma mají kompy jejichž výkon ztěží dokážou využít mě to přijde jako optimalizace jen aby se mohlo říct že to je super-optimální bez nějakých extrémních přínosů pro koncáky (ještě navíc při načítání a ukládání souboru -- kolikrát to uživatel dělá?).
19. 8. 2026, 13:11 editováno autorem komentáře
Uzivatel malo, ale softwaru co nyni umi nacist XCF je celkem dost. V pripadne binarnich dat se takovy format hur siri, protoze se hur implementuje do jineho softwaru (narozdil od XML parseru).
Hodně záleží jaký binární formát zvolíte. On to nemusí zrovna být ručně psaný a s ničím nepodobný bordel. Máme i moderní strukturované binární formáty.
Ze standardních třeba už zmíněný CBOR (ten mám nejraději).
TLV (type-length-value) binárních formátů je k dispozici víc (MessagePack, BSON, ...). Jsou typicky 1:1 mapovatelné na JSON, takže aplikace vlastně skoro nic nepozná.
Nebo pokud máte aplikační schémata, tak klidně protobuf (i když ho osobně nemám moc rád), postcard nebo flatbuffers.
No, az na to ze CBOR ma mnohem mene implementaci nez treba ono XML, ze. Takze by se takovy format hur siril nez XML. Jak jsem psal.
Každá novější věc bude mít méně implementací. Takže ano, je tam vyšší bariéra, ale výhody mohou převážit. A jako serializační formát to není problém, stačí podpora v jazyce projektu. A ta existuje pro všechny mainstream jazyky (on se totiž CBOR používá v security).
Já jsem takhle opravoval bakalářskou práci, kde se OpenOffice rozhodl, že vše od stránky 12 dál bude v poznámce pod čarou. Naštěstí to bylo právě XML v ZIPu, takže jsem přesunul konec jednoho tagu na správné místo. Kdyby to byl binární formát, třeba DOC, nezbylo by mi nic jiného, než vyexportovat text jako čistý text a naformátovat to celé znovu, včetně vkládání obrázků, grafů, tabulek, citací, poznámek pod čarou apod. Protože v programu s tím nešlo hnout, když jsem kus vyjmul do schránky a chtěl sem ho vložit zpátky do hlavního toku dokumentu, jenom z toho vyrobil další poznámku pod čarou.
Je to extrémní příklad, ale prostě jsou situace, kdy jste rád, že na ten soubor můžete sahat běžnými a spolehlivými programy, protože nativní aplikace něco neumí, nebo něco pokazila.