Mno, je pravda, že zvažuju lispovou mutaci XSLT. Přijde mi, že by to nemusel být nijak složitý kompilátor a člověk by se nemusel párat se všemi těmi <hroznědlouhýnesmysl></hroznědlouhýnesmysl> ... :-D
Proč objevovat Ameriku? Můžete použít existující DSSSL, který se však (hlavně kvůli své lispové syntaxi) příliš neujal. Nebo novější XSieve (http://xsieve.sourceforge.net/).
Nevím, proč se u každého článku o XML na rootu vylíhnou lispoví fundoši. Nikdo je nenutí používat XML, XSLT apod. Mohou se držet svého lispu a nekydat hnůj.
Já osobně mám lisp rád, ale pravda je, že produktivita psaní kódu v XSLT je nesrovnatelně vyšší s psaním v DSSSL.
BTW, pro Emacs existují pěkné módy napsané v lispu, které za vás ty hrozně dlouhé nesmysly automaticky doplní (třeba nxml). Jestli pak si ten lisp nepodřezává pod sebou větev.
> které za vás ty hrozně dlouhé nesmysly automaticky doplní (třeba nxml).
Pokud se ty dlouhe nesmysly daji automaticky generovat tak to znamena ze nenesou zadnou relevantni informaci. Tak proc tam tedy vubec jsou?
No možná proto, že u "choose" je každému jasné, že se jedná o podmínku. Samozřejmě mohlo by se psát "ch" nebo třeba "7", ale to už asi tak jasné a přehledné není.
A u delších kódu (které se celé nevejdou na obrazovku) je rozhodně přehlednější "</tr></tbody></table>", než ")))".
Chlapci, smiřte se s tím, že Lisp je super, ale pro normální vývojáře a pro řešení normálních problémů to není. Kdyby byl Lisp ve všech ohledech tak skvělý, určitě by se mnohem více prosadil. Ale nějak se mu to za ta léta nepodařilo. Radši se radujte z toho, že funcionální programování se dostává znovu na výsluní -- XSLT a XQuery jsou v podstatě ořezané funkcionální jazyky, C#3.0 a VB9 podporují lambda funkce, ...
A vy chlapce se zase smirte s tim ze dokud nam budou XML odbornici prezentovat sve objevy ktere z Lispu a funkcionalnich jazyku zname uz dvacet a vice let, tak vam to budeme na diskusnich forech rikat.
Tak mi aspon naznac ake ekvivalenty nasledujusich elementarnych vlastnosti XML v LISPe mate:
- XML namespace
- moznost deklarovat strukturu (XSD)
- validovat proti tejto deklaracii
- datove typy
- komplexnejsie kontroly nad strukturami (RelaxNG, ...)
Nemylte si XML a XSLT. Neviete rozlisit medzi datami a programom? XML ma od LISP-u tak daleko ako kamion od kolieskovych korcul (aj ked kolesa maju obidvaja). Ja LISP poznam ale vy neviete o XML vobec nic.
Tohle je provokace, že?
Zůstanu u Common Lispu, jednoho ze dvou největších současných general-purpose Lispů.
Nejsem autor původního, ale naznačuji. Není to 1:1 korespondence, a některých bodů to je trochu (ale ne moc) přitažené za vlasy, ale jako odpověď na provokaci by to mohlo stačit.
- deklarace struktury: pro menší struktury declare a spol http://www.lisp.org/HyperSpec/Body/sym_declare.html (i když pro velkou strukturu to není), při předávání dat různé typy lambda listů a struktura v destructuring-bind.
- kontrola proti deklaraci: check-type, při použití lambda listů a destructuring-bind automaticky.
- datové typy: to je vtip, že? Polovina kapitol v ANSI normě se už podle názvu zabývá nějakým konkrétním datovým typem či jejich skupinou
- komplexnější kontroly nad strukturami: neznám, přiznávám. Ale jakoukoliv rozumně algoritmizovatelnou kontrolu nad strukturou mohu provádět Lispovým programem, a sexp vyjádření tohoto programu prohlásit za deklaraci oné struktury.
Máte pravdu, lidi co aspoň trochu chápou Lisp neumí rozlišit mezi daty a reprezentací programu. Vy ano? Zmiňované XSLT jsou data nebo zdrojový kód pro program? Jak se to liší? Pokud napíšu kompilátor, který z XSLT dělá binárku, která bude dělat onu transformaci, je to program? Pokud dávám XSLT jako parametr programu, který z něj a vstupu dělá výstup, jsou to data?
Uz ked sa clovek pozrie na tie referencie tak sa nemoze ubranit smiechu. Naco je preboha toto dobre. Na nejake sofistikovane onanovanie nad problemom ktory sa da v inych jazykoch vyriesit za 10 min v lispe bude patrat dva roky ako to zapisat na stvrtinu povodneho kodu.
Sorry toto je nanic. Ja som v LISPe robil ale fakt si neviem predstavit co by som v tom robil dnes. Web aplikacie, klient server aplikacie, workflow systemy, databazy, grafiku?
Asi som uz prilis dlho zo skoly ale fakt som v praxi nevidel nic co by niekto riesil v LISPe. Pamatam si iba EMACS ale som VIMkar a nejaku gamesu ktora vraj bola v lispe (tusim aliens).
Iste LISP je v mnohych pripadoch elegantny. Je ale dost tazke predpovedat pouzite zdroje. V princie v LISPe sa vzdy uvazuje ze zdroje su neobmedzene. Vzhladom k dnesnym moznostiam pocitacov to tak naozaj zacina byt.
Prepacte opytam sa priamo. Cim sa zivite? Nejakym dlhodobym riesenim veci v LISPe?
Ked sa pozeram na to co mate v LISPe tak OK. Mate konecne efektivne moznosti ako pracovat s XML aj v LISPe. Nejak nerozumiete tomu ze XML, XSD su standardy. Dobre, zle, neviem, neriesim to. Ked ale chce niekto komunikovat s mojou Java aplikaciou viem co stym. Bude to XML. Dohodneme format v XSD a je to. Neviem preco si myslite ze by sme to mali robit v LISPe, alebo ze LISP nejak pomaha nasej praci. A ze nejake principy su odniekial prebrate, tak to snad nie. To akoby vzdy ked sa niekde pise o jave by prisli chlapci od C/C++ a zacili by sa buchat do hrude ze vsetko dobro pochadza prave z ich jazyka.
Skor mi pripadate ako zakomplexovana skupinka spriaznenych dusi. Treba sa snazit pochopit nie utocit.
Fuha, trochu som sa rozpisal. Nevadi. Rad by som sa dozvedel odpovede. Nerozumime tejto vasej LISPomanii, obzvlast nie v spojeni s XML.
... přičemž všechny tyto otázky jsou irelevantní. Podstatné je, že lidé od XML dělají povyk okolo toho, jak napsat instrukce jak něco provádět ve stejném formátu, v jakém jsou data, nad nimiž se operuje. A tohle je prostě pro spoustu lidí něco, co už viděli. Zvlášt ve spojení s tím, že formát XML je v zásadě jednoduše do a z sexpů převeditelný.
Tak urobte nejaku SUPR kniznicu ktora zoberie XML a pomocou LISPu ho skonvertuje na ine XML (a tiez o tom mozete urobit prednasku). Uvidime, mozno sa to ujme. Moj osobny nazor ale je ze nie. Dnes mame XQuery, XPath, XSLT dostatocne rychle a lahko embedovatelne do mnozstva platforiem a jazykov. To co vy vnimate ako povyk je obycajny nastroj. Ak si na tom niekto buduje karieru tak je to smiesne. Nie je treba k tomu tahat LISPovu kartu.
Ak ste ale chceli povedat ze ste videli nejaku zabavnu predvadzacku niecoho co sa da riesit ovela jednoduchsie tak ste bud nesli dostatocne hlboko alebo to proste bol trapas.
Ja tak vnimam vacsinu toho co sa dnes uci, prednasa, ukazuje aj na odbornych prezentaciach. Principy zostavaju uz desiatky rokov rovnake: jednoduchost, zrozumitelnost, univerzalnost, stabilita, flexibilita. Aj ked mnohe pojmy su z "fyzikalnych" dovodov nezlucitelne treba sa snazit drzat ich vybalancovane. To je umenie skutocneho programatora.
Mozno sa niekto inspiroval LISPom (to fakt nemoze nikto potvrdit alebo vyvratit ale historia XML pochadza z SGML -> GML -> 1960). Otazke je: No a co? Cely svet pouziva XML a vy tu diskutujete o tom ake by to bolo fajn keby to bolo LISP. Asi pre nieco to LISP nie je. S tym nic neurobite.
Dobry den,
myslim si ze nechapete jednu vec. Lisp je neco jako matematika, je to obecny princip programovani ktery se v ruznych podobach objevuje v dalsich jazycich (a krom toho je Lisp i konkretni implementace programovaciho jazyka).
Vytahovat se s XML na Lisp je podobne jako rikat ze Microsoft Excel je lepsi nez matematika, protoze Microsoft Excel je rozsirenejsi, umi ho vic lidi a spoustu veci uz je v nem hotovych, zatimco ta matematika, vzdyt ona je vlastne k nicemu.
No jestli vás na MFF učí, že Lisp je něco jako matematika, tak to potěš. Ale ono to tak naštěstí nebude, znám spoustu matfyzáků, co v tom zmatek nemají.
Neviděl jsem tu nikoho, že by se s XML vytahoval na Lisp, spíše naopak.
A myslím, že Lisp chápu celkem dobře. Možná, že jsem v něm (a v jeho dialektech jako elisp, scheme, DSSSL) napsal více kódu než vy. Možná také ne. A co na to Jan Tleskač?
Rika vam neco lambda kalkulus a Curry-Howarduv isomorfismus? Pokud ano, tak mozna ocenite podobnost Lispu a matematiky. Pokud ne, tak potes ze se poustite do odvaznych diskusi o programovacich jazycich.
Doufám, že se Ti ulevilo. Protože jestli ne, tak celá Tvá snaha k napsání diskuzního příspěvku byla zbytečná a nesmyslná, což by byla škoda - dělat něco, co nemá smysl.
alebo v akomkolvek inom jazyku. Ako moze niekto porovnavat datovy format s programovacim jazykom. Ved predsa XML je o tom ze je standardne a existuju parsre a validatori do kazdeho jazyka. Nativne bindingy do viacerych jazykov s typovou a mennou kontrolou (takze ani neviete ze robite s XML).
Koho zaujima vas mrvtvy jazyk. XML je prave o interoperabilite mezi HW a OS platformami, progr. jazykmi.
No právě proto, že XML je čím dál tím víc podobný LISPU. Postupně do toho přidávají programovací jazyky, když už rovnou na začátku mohly šáhnout po programovacím jazyku, který je zároveň datovým formátem. LISP totiž s datovým formátem porovnávat můžu, protože LISP je datový formát. V něm totiž těžko určíš co je ještě kód a co už jsou data a naopak. Na začátku byl strojový kód, pak asembler, frotran a pak se zjevil LISP na druhé straně programátorského vesmíru. Ze strany od strojového kódu, assembleru a fortranu přibívají další a další jazyky jako macroassembler, C, BASIC, Pascal, ... až po Perl, Python, Ruby. Na druhé straně vesmíru vznikl Smalltalk, Haskel, ... Z té první strany se objevují stále nové a nové jazyky, které se stále více a více snaží podobat LISPu. No a pak tu máme datové formáty, které nam do tohoto vesmíru přícházejí jako by z jiné dimenze, ale zas se do toho začnou přidávat schopnosti programovacího jazyka a uprostřed toho všeho, kam to všechno směřuje něco je. Už ten bod známe. Ano je to LISP.
Ale pri XML si mozes vybrat ci ho planujes pouzit ako programovaci jazyk. XML sa v dnesnej dobe pouziva viac ako datovy format nez prog. jazyk. Ludia pochopili ze programovanie v XML nie je velmi efektivne.
Problem je ze v LISP-e si vybrat nemozes. To je jazyk a hotovo.
A mate nieco cim si dokazete obmedzit strukturu toho zdrojaku ala XSD? Zmierte sa s tym ze datovy standard na heterogennu vymenu dat je na minimalne 10 nasledujucich rokov XML nie LISP. Naco plakat nad rozliatym mliekom.
Tak na takovehle veci opravdu neni LISP zapotrebi, na takovehle jednoduche work-flow bohate staci jednoduchy build file at uz udelany zapomoci Ant nebo Make.
Ant a makefile na to stačí teoreticky, ale výsledky jednotlivých kroků se musí předávat přes dočasné soubory, což znamená zbytečné parsování/serializování XML. Rozumné implementace XProc si budou data mezi komponentami předávat pomocí nějakého proudového API (SAX, STaX), čímž se dosáhne podstatně větší propustnosti dat než u řešení založených na ant/make.
Ale ved to nie je urcene na offline spracovanie. Je to standardny 'interpretovany' jazyk umoznujuci rekonfigurovat sposob spracovania. Nic viac. A ked chces tak ten interpreter mozes spustat aj z tvojho Make alebo Ant.
tng:
Souhlasim. XML po troskach davkuje elegantni myslenky Lispu (syntakticky strom a jeho transformace v programu samotnem) a pro kazdou aplikaci techto myslenek vymysli spoustu zbytecnych -ML zkratek a norem a podobnych uzitecnosti.
Vsechny ty komise zasedajici a zasedajici a cestujici po svete a konzultanti pro "enterprise", stejne si o nich myslim ze ti horsi z nich proste nemaji na to aby Lisp pochopili, neumi myslet abstraktne a tak se rochni v syntaktickych malickostech, ti lepsi z nich Lisp znaji ale radsi o nem nemluvi aby se neprozradilo ze toho zas tak moc nevymysleli, to co znaji prepisou do "ex em el" a nechaji si to dobre zaplatit.
Videl jsem onehda prednasku jakehosi borca o "executable XML", kde z XML a UML generoval kod. Skoro jsem se smichy pos..mal, vy co znate Lisp a makra urcite vite proc.
Jedina vec ktera by na XML mohla byt oproti Lispu zajimava je typovy system, ale ve srovnani s opravdu dobrymi typovymi systemy podporenymi matematickou logikou (ML, Haskell) je to slaby system.
Tipuju ze tak za 10 let nejaky chlapek od XML prijde s typovou inferenci a udelaji na to dvacet norem.
A vy po sebe aj citate? "XML po troskach davkuje elegantni myslenky Lispu" - vsak sa zobudte. Mate snad XML namespace, moznost deklarovat strukturu (XSD), validovat proti tejto deklaracii, datove typy, komplexnejsie kontroly nad strukturami (RelaxNG, ...).
Ak by bol ten vas LISP taky vseliek tak by sa presadil. A kde je? Na pol ceste za Titanicom.
Dobry den,
Lisp nema typovy system, to uznavam a zminuju to o par prispevku vyse. S Lispem spratelene funkcionalni jazyky jako je ML a Haskell ovsem zajimavy typovy system maji a podle meho nazoru je zajimavejsi nez ponekud tezkopadne a staticke XSD (RelaxNG zatim neznam, ale podivam se na nej).
Takze, pokud chcete vydelat rychle penize na "enterprise XML konzultacich", dal se ucte se XML a XSD a RelaxNG, nic proti. Pokud chcete opravdu proniknout do hloubky a doopravdy pochopit co je to programovani a datove typy, naucte se Lisp a Haskell. Vic uz vam poradit nemuzu.
Ale ja som robil s LISPom a nerozumiem preco by prave LISP malo byt to prave programovanie. Existuju aj ine prinicipy nez ktore ma LISP. Vacsina dnesnych jazykov ma vsetky tie ktore ma aj LISP. Maju ale aj ine ktore v LISPe nemate alebo ich komplikovane obchadzate. OOP a AOP nech nam sluzia ako priklad.
Vzhledem ke svate valce je to sice off-topic, nicmene koho zajima XML Pipline
zkuste se podivat na Orbeon. Lidi okolo
nej spolupracovali na ty specifikaci. Je to aplikacni server na XML bazi postaveny
nad J2EE. Mimochodem podporuje i server-side implementaci XForms, kvuli cemuz sem
do neho treba ja naboural.