Z meho pohledu se vyhody lispu zacnou nejvice projevovat pri rustu komplexity a abstraktnosti problemu. Ja osobne jsem se naucil uz hodne jazyku, ale zadny nema takove vyjadrovaci schopnosti a tak jasnou a pritom jednoduchou syntaxi i pri reseni sebeslozitejsich problemu.
Myslim, ze kazdy programator by se lisp mel naucit (tim myslim neco vetsiho v nem napsat, jinak to nema cenu), i kdyby jej pak uz nikdy nemel pouzit - protoze tim ze pozna lisp a zpusob prace v nem, najednou zacne videt spoustu veci jinak, a i kdyz dal bude pracovat v C, jave nebo cemkoliv jinem, troufnu si tvrdit ze mu to pomuze.
A rad bych upresnil par bludu co se tady objevily - vetsina z nich se traduje mezi lidmi co lisp vubec neznaji (coz je vetsina):
1) lisp je interpretovany - nektere implemetace jsou 100% interpretovane, nektere jsou kompilovane. Existuji kompilatory lispu do Ccka, existuji vyladete kompilatory ktere pri pouziti ruznych hintu pro prekladac dokazi generovat kod ktery je velmi rychly. Dokonce bylo postaveno nekolik pocitacu pro nez je lisp primo strojovym kodem (resp. urcita podmnozina lispu)
2) lisp je pomaly - viz ad 1) - jsou kompilatory horsi, jsou i lepsi, nektere jsou vyborne
3) neprehledny les zavorek - to mohlo platit v dobach kdy prumerny textovy editor neumel zvyraznovat pary zavorek, pripadne automaticky odsazovat - v dnesni dobe tento problem myslim neexistuje (tedy za predpokladu ze neprogramujete v notepadu..) - sveho casu jsem za "neprehledny les slozenych zavorek" povazoval Ccko
4) je to vykopavka - prave diky svemu minimalistickemu navrhu lisp dokaze stejne snadno doplnovat nove funkce jako nove jazykove konstrukce (tj veci jako sou smycky, podminky, vyjimky, tridy, atd.) a tim v podstate nema sanci zastarat - narozdil od temer vsech "standardnich" jazyku, ktere pro zmenu jazykovych konstrukci vyzaduji prepsat kompilator
5) nejsou pro to knihovny - opet neni uplne pravda - ano, v zakladni "zabudovane knihovne" lispu moc zajimavych modulu nenajdeme, ale zejmena pro common lisp existuje nepreberne mnozstvi knihoven temer pro cokoliv - myslim ze zde neni situace o nic horsi nez napr. pro C/C++. Navic integrovat do lispu cizi objektovy kod neni slozite.
6) ma to zvrhlou obracenou syntaxi - ano, syntaxe v podobe "OPERACE OPERANDY" vypada spise jako assembler, nez jako vyssi jazyk, ale zdani klame - prave a pouze diky tato syntaxe lispu dava jeho silu.
Pro zacatecnika to muze byt lehce matouci, ale to je proste otazka zvyku.
Kdyz jsem se pred 15 lety ucil Ccko, znal jsem basic a pascal a Ccko mi prislo jako naprosto chaoticka smes znaminek zavorek a vubec divnych znaku. To same plati o lispu.
Mimochodem zajimave je ze tvurce lispu mel v planu do dalsi verze udelat nejakou "normalnejsi" syntaxi, nicmene ukazalo se ze o ni vlastne nikdo nestoji a ze by navic znemoznila spoustu skvelych jazykovych konstrukci.
A pro ty kterym dela problem zapis delsich matematickych vyrazu (a tech moc nebude) existuji knihovny ktere umoznuji psat vyrazy v "normalni" notaci - opet je zajimave ze je temer nikdo nepouziva - stejne jako jsem videl sady Cckovych maker ktera se snazi Ccko priblizit pascalu, a take je vicemene nikdo nepouziva.