Články od Pavla Tišnovského jsou parádní a rád se vždy dozvím něco nového. Ale teď mne někteří (možná i mnozí) ostatní čtenáři ukamenují díky mému dotazu do pléna.
A dotaz je to prostý: k čemu je jazyk Lisp dobrý? Respektive, používá to vůbec někdo? Podívám li se do tabulky používaných programovacích jazyků třeba zde https://statisticstimes.com/tech/top-computer-languages.php tak nevím, prostě žádný Lisp tam nevidím :)
Haskell se celou dobu drží ve Spojeném království, jinak asi moc ne. Ale Francouzi mají zase “svůj” OCaml a jako kuriozitu zmíním jeden obskurní jazyk (nevím, jak se jmenuje, možná ani nemá jméno) z Krakova založený na čudné (nefregovské) logice Romana Suszky (rodák z Těšínska), který vymyslel specifický logický systém pro formalizaci Wittgensteinova traktátu, načež mu v tom divní lidé začali psát programy (podobně jako když Martin-Löf vymyslel formální systém pro popis konstr. matematiky a informatici z toho k jeho nelibosti vyrobili Agdu a Coq). Ostatně i Lisp vzniknul jako čistě teoretický popis matematických funkcí a McCarthy valil bulvy (“you're confusing theory with practice, this eval is intended for reading, not for computing”), když Russell napsal interpret.
Statistiky asi neber tak vazne, treba v Tiobe indexu je, dokonce kupodivu pred Fortranem a tesne za Rustem a Kotlinem (tolik k tomu, jak brat tu statistiku vazne).
Jenze to nic moc neznamena, protoze ta statistika neni odvozovana od toho, co kdo pouziva a kolik z toho vytezi $, ale spis na zaklade dotazu a google analytics. Tj. hodne se tam vysplhalo PHP nebo VB, ale asi to uplne moc nerika o realnem nasazeni v porovnani treba s tim, co vsechno pohani Fortran.
Za me je dobry kvuli tomu, ze jsem si na lispu/scheme konecne uvedomil, jak veci funguji. Je tam blizko k AST a semantice, taky homoikonicita dost pomaha k pochopeni cinnosti interpretru i prekladacu (ale v praxi pouzivame jine jazyky ;)
Jednou za námi přišel známý a k pobavení všech znalých olbřímnosti tohoto úkolu sdělil, že má čtrnáct dní na to, aby se naučil Common Lisp + CLOS, protože začal pracovat v týmu, který ho používá. Jednalo se o systém z oblasti superpočítačů.
CL svoje přednosti ukáže nejvíce v oblastech, které se zabývají věcmi začínající prefixem meta- (přičemž mohou být stále silně praktické). Navíc, jeho alespoň pasivní znalost je nutná k pochopení některých důležitých aspektů programování (např. The Art of Metaobject Protocol).
Pokud se ho člověk detailně naučí, tak ho v ostatních jazycích asi máloco kdy překvapí (krom záliby mainstreamu v masochismu).
> Pokud se ho člověk detailně naučí, tak ho v ostatních jazycích asi máloco kdy překvapí (krom záliby mainstreamu v masochismu).
Není tohle zastaralý mýtus? Mně přijde, že v APL/J/K, Haskellu a jiných jazycích je dost konceptů, které okolo CL ani nešly. Silný typový systém jsme koneckonců nakousli a to zrovna asi taky nebude "reinvented Lisp" a o masochismu bych taky nemluvil.
Já myslím že to mýtus není. Ale těžko se to asi dokazuje. Přidám třeba zajímavé projekty co jedou na CL.
- https://www.grammarly.com/blog/engineering/running-lisp-in-production/
- https://www.youtube.com/watch?v=mbdXeRBbgDM