Hlavní navigace

Názor k článku Editory pro TeX: který je nejlepší? od Rejpal - Rejpale, doufám, že chápete rozdíl mezi objektivně platící...

  • Článek je starý, nové názory již nelze přidávat.
  • 3. 3. 2008 23:57

    Rejpal (neregistrovaný)
    Rejpale, doufám, že chápete rozdíl mezi objektivně platící (a platila by, i kdyby nebyli na Zemi žádní lidé) Pythagorovou větou a programovacím jazykem z doby, kdy počítače byly pomalé a primitivní, takže horu práce za něj musel udělat programátor při praní programu. LISPoidní programy jsou dnes dobré do inteligentních toustovačů s programovatelným mikroprocesorem, jinak je to historie. Nemám rozhodně nikomu za zlé, že tím ještě programuje na strojích, kde existují řádově modernější a výkonnější programovací jazyky, ale osobuji si právo mít za zlé to, že mi použití těchto jazyků někdo vnucuje. Kdyby byla komunita kolem Emacsu co k čemu, tak už tam vedle LISPu dávno dali python, perl, nebo nějaký jiný moderní jazyk (i GIMP už koketuje s pythonem pro skriptování).

    Děkuji. Tímto jste mi dokázal, že vůbec nevíte, která bije. V situaci, kdy programátoři znovu tzv. "objevují" vlastnosti Lispu (totiž překvapeně zjišťují, co existovalo již před třiceti lety), prohlásit Lisp za nemoderní jazyk, jasně svědčí o tom, jak moc je třeba brát Vás vážně, a sice minimálně, pokud vůbec. Moderní jazyky dneška jsou například Haskell a Lisp. Haskell je zcela aktuální. Common Lisp odpovídá stavu výzkumu z přelomu 80. a 90. let (viz třeba CLOS), díky rozšiřitelnosti měl ovšem Lisp vždy navrch co do schopnosti implementovat nové koncepty, třeba AOP lze v Lispu implementovat bez potřeby přepisovat kompilátor, což není třeba případ AspectJ. :-) Bohužel pro Haskell momentálně neexistuje komerčně podporovaná implementace, kterou by firmy braly na vědomí, a interaktivita GHC trošku kulhá. Enterprise-grade implementace Lispu jsou dvě a jsou velmi kvalitní.

    Bohužel díky nešťastným okolnostem je aktulizace ANSI normy téměř mimo diskusi a tak nový výzkum táhne Scheme - viz třeba práci Olega Kiselyova. Ovšem jeho díla v tzv. "moderním" Pythonu a Perlu naimplementujete značně pracně, protože ty jazyky prostě nevyhovují. Java, Python, C#, Perl a spol. jsou zamrzlé na začátu osmdesátých let, nenabízejí víc, než trošku okořeněný SmallTalk-80, v případě Perlu trošku zhybridizovaný s jakýmsi bizarním speciálním jazykem na zpracování textů. Nelze říci, že by Perl nebyl praktický (ostatně to říká první písmeno jeho názvu) nebo nedejbože že by nebyl použitelný, ale to nemá nic do činění s moderností, ať už "modernost" znamená cokoliv. Však taky Perl nikomu neberu, má své kouzlo i pro mě.

    Pokud jde o to, že Emacs je psán v Lispu, pak lze k tomu říci pouze to, že to je jedině dobře. Můžete mít představy, jaké chcete, ale Lisp je velmi produktivní jazyk, čehož si všimli i programátoři, takže po určitém období útlumu kolem poloviny devadesátých let zájem o něj v současnosti neustále vzrůstá, a píší se v něm nové velké systémy, které by v jiných jazycích bylo mnohem pracnější napsat (vyhledávače leteckých spojů, velké transakční systémy - Polaris pro Air Canada, statisíce řádků kompaktního Lispu leckdy nahradí miliony řádků C++). Netuším, jestli "výkonem" míníte výkon kompilovaného kódu nebo výkon programátora, ale kompilátory Common Lispu generují kód téměř na úrovni jazyka C, zatímco produktivita programátora v něm je srovnatelená s Pythonem. Nevím, co víc byste chtěl. Jste asi pořádně rozmazlený.

    Mimochodem, Pythagorovou větou Lispu je lambda kalkul, nevím, co objektivnějšího může člověk chtít. Jsem zvědav, co mi jako Pythagorovu větu nabídnete v případě Perlu. :o) Snad ne Kleenovu hvězdu? ;-)

    TeXovský jazyk (praktické zkušenosti s programováním mám jen z jeho varianty pro Metapost) je +- standardní procedurální jazyk se syntaxí sice velmi svébytnou (kus Pascalu, kus Perlu a mnoho dalších, asi jako takový správný vesnický pes "podvraťák"), ale kupodivu je to docela logické a dá se v tom intuitivně orientovat. Další věcí je, že v (La)TeXu jako takovém (= zpracování textu) většinou programovat nemusíte a jednoduchými makry v podstatě jen nahrazujete to, co by se dalo otrocky zvládnout copy - paste stylem.
    Sice nejsem TeXař, ale jeví se mi značně podezřelé dávat dohromady Metapost a makrojazyk TeXu. Já měl za to, že TeX je turingovsky úplný kvůli konstrukci if-then-else a faktu, že jeho makroexpanze má charakter tail callu. Nějakého Pascalu jsem si \mezi{těmi}[legračními]\konstrukcemi\nevšiml, a makrojazyk TeXu snad není Metapost.