Hlavní navigace

Vlákno názorů k článku Proč XML není jen bublina od Yeti - Řekl bych, že tento článek reaguje na něco...

  • Článek je starý, nové názory již nelze přidávat.
  • 17. 4. 2003 1:30

    Yeti (neregistrovaný)

    Řekl bych, že tento článek reaguje na něco úplně jiného, než byly ty námitky ;-)

    Začal bych něčím OT. Varianta

    <a>
    <href>http ://www.root.cz/</href>
    <name>root.cz</name>
    </a>

    se mi líbí podstatně víc -- za předpokladu, že nedatlím www stránky v notepadu, ale že jsou to strukturovaná data, která se mají uchovat těch deset let, jak píšete.

    Málokdo tvrdí, že XML je úplně k ničemu, a že za chvíli bublina splaskne a nebude ho používat vůbec nikdo. Nicméně XML je momentálně buzzword, XML musí být všude a ve všem, a kdo řekne, že se XML k něčemu nehodí, je v nekterých kruzích zlynčován ;-) Tohle *je* nafouknutá bublina, která splaskne, až čas ukáže kde je XML skutečně výhodné.

    Dál není pravda, že nemusím používat všechny ty X* technologie. No, nemusím pravda používat *úplně* všechny. Nicméně musím používat, nebo aspoň vzít v úvahu ty, které používají lidé, organizace a software, s nimiž potřebuji nebo chci spolupracovat. A jak správně popisujete, každý používá něco jiného, takže nakonec si moc nevyberu.

  • 17. 4. 2003 9:48

    siki (neregistrovaný)

    >Dál není pravda, že nemusím používat všechny ty X*
    >technologie. No, nemusím pravda používat *úplně*
    >všechny. Nicméně musím používat, nebo aspoň vzít v
    >úvahu ty, které používají lidé, organizace a
    >software, s nimiž potřebuji nebo chci
    >spolupracovat. A jak správně popisujete, každý
    >používá něco jiného, takže nakonec si moc >nevyberu.

    Záleží přece na tom jak chcete spolupracovat. Jestli se jedná o vývoj softwareové komponenty pro jinou firmu tak asi ano, ale pokud si chcete s nejakou firmou pouze vyměnovat informace (ve standartizované formě), tak vám je jedno jestli používají X* nebo mají pronajatých 40 důchodců co to louskají ručně.

  • 17. 4. 2003 12:12

    Yeti (neregistrovaný)

    Co třeba validace? Já, jakožto zpozdilec, si normálně vystačím s DTD. Nicméně máme XML Schema, Relax NG, XDR, SOX, Schematron, DSD a kdovíco ještě. Když někomu pošlu DTD, tak musí použít k validaci DTD nebo si to do něčeho převést. (DTD je ještě ta nejmírnější možnost, protože je nejstarší, takže funguje všude.)

  • 17. 4. 2003 13:35

    Jirka Kosek (neregistrovaný)

    Validace je volitelný, nikoli povinný krok při čtení dokumentu XML. Takže XML načtete, aniž byste byl nucen dělat validaci, a zajímal se o to, zda je schéma dokumentu popsáno v DTD, RNG, WXS nebo něčem jiném.

  • 17. 4. 2003 14:10

    Yeti (neregistrovaný)

    Jasně že validaci nemusím dělat. Jenže ji třeba chci dělat ;-) Skutečnost, že ji mohu dělat deseti nekompatibilními způsoby, podle mne naznačuje, že *něco* tu splasknout musí -- netvrdím samozřejmě, že to něco bude ,,core XML``.

  • 17. 4. 2003 11:03

    Petr Cimprich (neregistrovaný)

    "Řekl bych, že tento článek reaguje na něco úplně jiného, než byly ty námitky ;-) "

    Samozrejme. Toto je reakce na nektere hlasy tvrdici, ze je XML je vubec cele spatne. K namitkam, ze XML API jsou prilis obtizna, se (tento) clanek temer nevyjadruje a nic "neuvadi na spravnou miru."

  • 17. 4. 2003 12:30

    Milan Zamazal (neregistrovaný)

    Souhlasím, až na optimistický názor, že XML časem splaskne. XML jen tak nesplaskne, řeší totiž dost závažný problém všech programátorů v C, C++, Javě a podobně dementních jazycích, že *nedokáží jednoduše načíst a zapsat data zapsaná v podobě vlastního zdrojového kódu*. To je reálná potíž a XML ji jaksi řeší.

    Nic proti tomu že se pokusili definovat nějaké řešení, kdyby to aspoň udělali dobře, tak by mohlo být dobře použito jako "společná řeč". Jenomže použít pro reprezentaci dat formát určený pro zápis formátovaných textových dokumentů?!?! Ještě že si nevybrali nějakou verzi .doc nebo RTF...

    Přidám další nedostatek: Kolik práce dá napsat kompletní a validující XML parser? Ad přítomnost atributů: Proč to dělat jednoduše, když to jde složitě, že, tak zavedeme atributy...
    ..

  • 17. 4. 2003 13:17

    Zdenek Pavlas (neregistrovaný)

    nedokáží jednoduše načíst a zapsat data zapsaná v podobě vlastního zdrojového kódu

    Souhlas. Nebylo by proto lepsi "na to jit od lesa" a zaradit jednoduchy kompilator ANSI C (plus jednoduchy restricted execution/interpreter) do standardni knihovny? Melo by to oproti XML same vyhody a orezany self-compiling prekladac C ma nejake 3kB. http://fabrice.bellard.free.fr/otcc/

  • 17. 4. 2003 13:41

    Jirka Kosek (neregistrovaný)

    Samé výhody? Třeba, že data zapsaná programem v C, by nešla přečíst v Jave a C#? Tomu říkám opravdu velká výhoda :-)

  • 18. 4. 2003 12:39

    Proc ne.. (neregistrovaný)

    Proc by nesla? Kdyz nekdo tu knihovnu naportuje do Javy a C# tak to pujde precist i tam.. XML taky neprectete bez XML parseru. A co se tyce tech vyhod, tak jsou zrejme:

    1. Neni nutne vytvaret novou syntaxi a novy datovy format.
    2. Stejny instrument popisuje data i algoritmus.
    3. Odpada potreba DTDcek.
    4. Validace je vypocetne uplna.

    Je to tedy univerzalnejsi, jednodussi a silnejsi nastroj.

  • 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.

  • 17. 4. 2003 13:31

    Yeti (neregistrovaný)

    Nechápu, co jste chtěl říci tím C, C++, Java, ... Jsou to kompilované programovací jazyky. Produktem kompilace je spustitelný program na dané platformě. Zpracování svého vlastního zdrojového kódu je obtížné. OK.

    Pak máme interpretované jazyky -- shell, Python, Perl, ... Tam se zpracováním a modifikací svého kódu problém není. Cenou je to, že musí být interpretovány (mno, teda jak kdy, ale to je technický detail).

    A XML? XML je značkovací jazyk. Výsledkem kompilace XML je třeba PDF, PostScript, HTML, .... Jakým způsobem bude to PDF zpracovávat svůj zdrojový text, tj. to XML? Nebo jak jste to přirovnání k C myslel?

  • 17. 4. 2003 15:59

    Milan Zamazal (neregistrovaný)

    Nerozumím co myslíte pojmem "kompilované" a "interpretované" jazyky a jaký přesně rozdíl je v tomto smyslu třeba mezi Javou a Pythonem. Co jsem měl na mysli já je kupříkladu přítomnost `exec' v Pythonu a jeho nepřítomnost v Javě. Dělám-li konfigurák pro program v Pythonu, nejjednodušší (byť ne nutně vždy nejlepší) je zapsat ho v Pythonu. Je-li program v Javě, žádnou podobně jednoduchou možnost nemám.

  • 17. 4. 2003 16:35

    Yeti (neregistrovaný)

    Tohle chápu, ale nechápu tu návaznost na XML.

    Napíšu to jednodušeji: XML je jen forma uchování dat, takže skutečnost, že je v XML možné [mimo jiné] zaznamenat aplikaci zpracovávající XML, o ničem nevypovídá. V ASCII také mohu [mimo jiné] zaznamenat aplikaci zpracovávající ASCII.

    Trochu jiná věc je zmiňovaný lisp, kde právě není to ,,mimo jiné``.

  • 17. 4. 2003 16:40

    Yeti (neregistrovaný)

    Nebo ještě jinak: XML nemá aproirní sémantiku, takže jak by v něm mohl existovat nějaký ,,exec``? Co s ním má společného a proč to motáte dohromady?

  • 17. 4. 2003 17:10

    Milan Zamazal (neregistrovaný)

    Přiznám se, že teď asi taky nechápu, na co se ptáte :-), tak zkusím doplnit, co jsem říkal předtím: Když pracuji v Pythonu a potřebuji snadno zapsat nějaká data, zapíšu je jako pythonový program. Když pracuji v Javě a potřebuji snadno zapsat nějaká data, v Javě to dost dobře nejde. Proto hledám něco jiného a vymyslím si třeba XML.

    V Pythonu se o něco jako XML začnu zajímat teprve v okamžiku, kdy si potřebuji vyměňovat data s jiným prostředím. V Javě něco podobného potřebuji již mnohem dříve. No a když je pro Javu, C a C++ už hotové XML a knihovny k němu jako *opravdu potřebný* nástroj (byť pro daný účel pitomě navržený), nelze moc očekávat, že XML bublina v nejbližších deseti až dvaceti letech splaskne.

  • 17. 4. 2003 22:10

    martin (neregistrovaný)

    Bublina nesplaskne a je to jen dobre, protoze konecne bude konec tem konfigurakum, ktery jsou jiny, kdyz stejnou ulohu zpracovava Python, Perl, PHP, ...
    V XML je mozne stejnou konfiguraci pouzit pro vsechny jazyky a nejen pro ty interpretovane.

  • 18. 4. 2003 11:39

    Milan Zamazal (neregistrovaný)

    Jenomže konfiguráky v XML jsou nepřehledné, špatně se editují a pokud v nich chcete programovat, je to všechno ještě horší. Špatné řešení je někdy horší než žádné řešení.

  • 18. 4. 2003 14:38

    Pavel (neregistrovaný)

    hmm, me neprijde

    <add key="xxx" value="yyy" />

    nejak neprehledne.

    jasne ze je to ponekud delsi nez
    xxx=yyy
    nicmene neni to (dle me) neprehlednne.

  • 18. 4. 2003 17:24

    BoodOk (neregistrovaný)

    Jo jeden radek je v pohode. Predstav si okomentovany konfigurak squid.conf v XML. Brrrrrrr ...

  • 20. 4. 2003 8:04

    hynek (neregistrovaný)

    mno ale na druhou stranu ,zase nedochazi k takovym extremum ,kdy jsem delal nejake upravy v ldapu a po pomerne dlouhe dobe jsem zjistil ,ze je treba zacit psat hned od zacatku radky :(((( - ja bych docela uvital vsechny konfiguraky v unixech v XML - vzdyt napsat dneska graficke gui k textovemu konfigu je docela opruz

  • 17. 4. 2003 23:34

    Pavel (neregistrovaný)

    muzu se zeptat co TIMHLE NESMYSLEM chtel basnik rici ?

    Ja kdyz jsem psal jako 7 letej parchant v basicu, a potreboval jsem zapsat nejaka data, tak jsem je proste zapsal, at uz to bylo cislo, text, obrazek a cokoli jinyho, do souboru jak to lezelo a bezelo. Kdyz jsem to same potreboval udelat v pascalu, c, c++, a kdyz to potrebuju ted v C#, udelam to same (pokud to nervu z/do DB). Proste zapisu do souboru slepenec "bezvyznamnych" bajtu , ktere dohromady daji informaci, kterou potrebuju.kdyz to pak mam nacist, pravdepodobne vim, jak je to ulozeny, takze to zas bez problemu nactu. XML je o tom, ze nekdy je treba data dostat nekam, kde nemaji chut psat si neco, co by tomu blitku bajtu rozumelo, nebo kdyz je vyzadovana citelnost. za svuj zivot jsem poznal jen 3, slovy tri lidi, kteri (pokud to bylo treba, ne snad z masochismu) byli schopni rucne editovat DBF (datovy format pouzivany foxpro/dbase), naproti tomu rucne opravit XML zas takovy problem neni.

    navic si nedovedu dost dobre predstavit, jak by se tvaril uzivatel plain-textoveho editoru, ktery by misto jeho textu ulozil zdrojovy kod programu ktery umi ten text zobrazit atd...

    pokud jste to snad myslel jinak, zkuste to vysvetlit tak, aby lidem, kteri zrejme nebudou na takove urovni jako vy nepripadalo, ze mluvite z cesty, nebo ze jste snad dokonce uzil vetsi nez male mnozstvi nejakeho halucinogenu ;-))

  • 18. 4. 2003 11:48

    Milan Zamazal (neregistrovaný)

    Až budete mít více zkušeností s programováním (které se nezískávají jen množstvím napsaného kódu), možná pochopíte.

    Jinak ještě poslední příklad. Z mého hlediska je běžně používaný zápis v ~/.profile mnohem jednodušší než alternativy, které uvádíte. Srovnejte:

    Shell:

    export LANG=czech

    XML:

    <set-variable name="LANG" export=export>czech</set-variable>

    Memory dump:

    ... dosaďte si sám ...

    Víc už nemám co dodat. Howgh.

  • 18. 4. 2003 14:28

    Pavel (neregistrovaný)

    Myslim ze 15 let u pocitace cloveku (pokud tam jen ehraje miny a nevyplnuje formulare) uz neco da. Jedine co me napadlo ze byste tim mohl myslet je u skriptovacich jazyku jako perl,python & dalsi je ukladat data do zdrojaky ve forme


    x1=...
    x2=...

    a to mi prislo natolik zvrhle, ze jsem se to ani peopovazoval vyslovit.


    Pravdepodobe jste vsak myslel neco jineho, ne prasackeho a jeste pravdepodobneji genialniho, takze byste me, jako zkusenejsi (ne jen mnozstvim napsaneho kodu) "kolega" mohl osvitit.

    dale nevim co jste se tim export & spol snazil rici ...

    a jiste ze by to slo napsat usporneji, jako napr
    <export name="$tmp">xxx</export>
    <export>tmp=xxx</export>

    nebo tez v shelu:

    $tmp=xxx
    export tmp

    co jste chtel dokazat zbytecne nafouknutym zapisem ?
    ze to umite napsat i delsi ??

  • 18. 4. 2003 11:49

    Cohen (neregistrovaný)

    Teda, z tohohle sem, mirne receno, na vetvi.

    Kdyz pisu v jakemkoliv jazyce, ktery se spousti ze zdrojaku (Perl, Python apod.), delam taky oblibenou cunarnu, ze pisu konfiguraci a zakladni data na zacatek programu (nebo oddeleneho modulu, ale to je v podstate totez).

    Ale ukladat vsechna data ve forme zdrojaku, to snad ne? Nebo jak jste to myslel?

    Nebo se tu mluvi o serializaci, ktera interne vyuziva moznosti jazyka? To je ale k dispozici pro vetsinu jazyku, minimalne napr. pro Javu, v C jsou take serializacni knihovny.

    Tady jde o PRUHLEDNY a citelny format vymeny dat a nechapu souvislost.

  • 18. 4. 2003 13:30

    Zdenek Pavlas (neregistrovaný)

    Musím se přiznat že mi taky nejprve chvíli trvalo co měl Milan na mysli, zkusím to podat trochu jinak. Omezím se na datový formát pro konfigurační soubory.

    Nejjednodušší konfigurák obsahuje jen flat seznam prirazeni PROMENNA=LITERAL. Už u trošinku složitější aplikace potřebuju ty atributy strukturovat- napadají mne třeba virtualhosty u Apache. Takže směřujeme k hierarchické struktuře atributů. Přidáme balast a nazveme to XML a ono to funguje a když to použijeme na dokumenty bude to pěkně interoperabilní.

    Problém je že ani tohle nestačí. Co je to konfigurák? Konfigurák je vlastně nový program který vznikl jako speciální verze původní aplikace. Podle OO metrik se dá konfigurační soubor chápat jako instanciace aplikace.

    Mám dejmetomu atribut TIMEOUT který je ve vteřinách. Proč musím 5 minut psát jako 300 a nemůžu prostě napsat 5*60?
    Konfiguráky se snaží popisovat vše nejlépe literály, v lepším případě jednoduchou gramatikou ale brání se uvádění výrazů nebo nedejbože bloku kódu jako hodnoty atributů.

    Přitom některé věci které musejí být v konfiguračním souboru si o to přímo říkají- například zápis access pravidel. Access pravidla jsou v podstatě funkce které mají mnoho argumentu a vracejí boolean (povolit/zakázat). Argumentů je fůra: KDO (role uživatele), CO (typ operace), KDE (nad jakým objektem), KDY. Jak chcete tohle parametrizovat POUZE DATY? (klasifikace argumentu KDE je další problém- třeba v DB aplikacích často chci aby řízení přístupu záviselo nejen na jménu tabulky ale i obsahu konkrétního záznamu)

    Závěr je že každá netriviální aplikace potřebuje konfigurák, který musí mít stejnou vyjadřovací sílu jako aplikace sama. Toto je možno řešit dvěma způsoby:

    1) konfigurák má stejný formát jako aplikace
    2) použít XML nejen pro data ale i pro kód (big maglajz).

    Legračním důsledkem je že pokud se důsledně použije XML alternativa, bude nám stačit napsat META-XML-PROCESOR jako jedinou binárku. Všechny ostatní aplikace lze přepsat do formy přehledných :) XML dokumentů. Vznikne tak akorát jedna vrstva abstrakce navíc- zcela zbytečně.

  • 18. 4. 2003 13:44

    Zdenek Pavlas (neregistrovaný)

    Myslím že proti použití XML jako "citelny format vymeny dat" nikdo zásadní výtky nemá (krom neefektivity, zbytečné ukecanosti, množství balastu a složitých api, ale co je bez chyby). XML mohla být dobrá alternativa CSV fajlů- umí věci jako pojmenování sloupců a strukturovaný obsah. Jenže oni se snaží z toho dělat něco víc, takže to končí znovuvynalézáním kola a zbytečnou reimplementací už existujících nástrojů.

  • 17. 4. 2003 13:54

    Jirka Kosek (neregistrovaný)

    Jen bych upozornil, že XML != "...formát určený pro zápis formátovaných textových dokumentů?!?! Ještě že si nevybrali nějakou verzi .doc nebo RTF... "

    XML je naopak formát určený pro popis struktury dat, nikoli formátování textových dokumentů. Možná by bylo spávnější říci dokonce metaformát/metajazyk, který umožňuje vytvoření vlastního jazyka pro potřeby konkrétního uživatele. Někteří uživatelé si mohou na základě XML vytvořit vysoce strukturované formáty, jiný zase jazyk, který umí zachytit třeba formátování dokumentu -- např. WordML v novém Wordu 2003.

    Ale rozhodně nelze XML považovat za jazyk pro zápis formátovaných textových dokumentů.

    OT. Tím udělat dobře jste myslel něco na bázi Lispu/Scheme? Ty by jistě také fungovalo, v něčem možná i lépe. Ale k jazykům tohoto druhu má mnoho lidí předsudky, stejně tak, jako mnoho lidí mělo předsudky k SGML, takže se nerozšířily tak masově, jak by si asi zasloužily. U delších dokumentů může být navíc velmi přehledné, když u koncového tagu vidíte, co vlastně ukončujete. Tuhle situaci vám ")" moc neulehčí. Podobnou vlastnost nabízelo SGML v podobě různých minimalizací, které umožňovaly koncový tag úplně vypustit, nebo jej zapsat např. jako </>. Sice je to pořád více než ), ale idea je podobná. Ale úplně životaschopná asi nebyla, když XML až na pár minoritních oblastí SGML zcela vytlačilo.

  • 17. 4. 2003 16:58

    Milan Zamazal (neregistrovaný)

    Možná jsem mimo, ale podle mě XML vychází ze SGML, což je jazyk pro reprezentaci dokumentů. XML chápu jako konkrétní, zjednodušenou, instanci SGML. Tipuji, že kdyby SGML nebylo tak trochu mamut, pro nějž je velmi obtížné napsat parser, XML by vytvořeno nebylo. A obtížnost napsání parseru je podle mě pravý důvod, proč SGML bylo XML vytlačeno, ne to jak konkrétně lze nebo nelze zapsat uzavírací značku.

    Pod "udělat dobře" jsem nemyslel nic konkrétního. Stačí cokoliv, co (tolik) netrpí uváděnými nedostatky. *Možná* třeba něco jako YAML -- nestudoval jsem to, tak nevím, ale přinejmenším tam uváděné cíle vypadají rozumně (přičemž XML jich většinu nesplňuje).

  • 17. 4. 2003 17:10

    Jirka Kosek (neregistrovaný)

    SGML je stejně jako XML metajazyk. Můžete si v něm vytvořit vlastní značkovací jazyk pro zápis jakéhokoliv druhu dat -- textových dokumentů, datových struktur, záznamů z relační databáze, vektorových obrázků, chemických vzorců, ...

    XML je podmnožina SGML. Z SGML byly odstraněny minimalizace a hlavně byla zafixována SGML deklarace. SGML deklarace sloužila k definici toho, jakými znaky se vlastně tagy uvozují apod. Takže SGML dokument nemusel používat "<" a ">", ale jakékoliv jiné znaky. Tyto vlastnosti byly pravým důvodem (vaším mamutem), proč bylo obtížné napsat parser SGML. V XML proto byly tyto vlastnosti odstraněny, použití DTD je nepovinné a znaková sada je Unicode.