Am avut de curând de încropit câteva scripturi rapide; nimic spectaculos — câteva operațiuni simple, executat câteva comenzi externe, uploadat nişte fişiere pe FTP, un frontend GUI fără pretenții (două butoane browse şi un buton Upload…), genul de lucru pentru care Python sau Bash ar fi arhisuficiente. Mai mult ca să văd cum se descurcă, am încercat NewLisp, cu care mai avusesem câteva contacte, şi a mers foarte bine. Pe scurt:
Ce-mi place
- Documentația. E scurtă, simplă, la obiect, şi mai ales, pentru Dumnezeu, spune ceva din când în când. Comparativ cu Hyperspec, chestia asta e un rai — totul e explicat pe scurt, cu câteva exemple simple şi clasificat rezonabil. Prin comparație, e mai uşor să scrii tu o funcție decât să vezi dacă există ceva asemănător în Hyperspec.
- Foarte uşor de distribuit. Bine, ASDF e foarte flexibil, dar asta numai pentru cine are LISP instalat. Pentru cine nu, se poate oricând distribui o imagine, care în cazul SBCL are câțiva MB pentru un amărât de Hello, world.
- Toolkit-ul GUI. E bazat pe Java, e portabil şi arată rezonabil. Se foloseşte uşor. Prin comparație, CL are ceva echivalent — LTK, bazat pe Tk (a se citi: urât ca munca), documentat ca pe şervețele, lent (nu foloseşte vreun FFI, ci Wish) şi extrem de enervant. Mai există câteva binding-uri pentru Gtk, dar alea n-au documentație nici cât să umpli o fițuică, d-apoi un şervețel.
- Portabil în limitele normalului. Standardul CL corespunde foarte bine realităților din anii ‘80 (lucru care se simte cel mai bine în modul cum construieşte pathname-urile). Realitățile din 2008 sunt, din păcate ce-i drept, mai puțin complexe.
Ce nu-mi place:
- Câteva din tipurile de date din CL nu-s pe-aici, deci dacă îi era cuiva dor să implementeze ad-labam un hash table, acum e momentul.
- Comparativ cu orice implementare CL, e leeeent. Bine, pentru scripting nu se simte, dar NewLisp se autodescrie ca fiind destinat calculelor ştiințifice. Nu ştiu ce calcule ştiințifice fac ăia, dar se poticneşte vizibil chiar şi la sarcini simple.
- IDE extrem de stresant. Din fericire, se integrează suficient de bine cu SLIME pentru ceea ce se vrea.
Aramdune a zis,
iulie 28, 2008 la 7:53 am
Hehe, interesant.
Marturisesc ca nu m-au interesat niciodata limbajele astea high level, dar lisp parca as invata.
alexandrulz a zis,
iulie 28, 2008 la 11:03 am
Să ştii că merită, indiferent de dialect — şi CommonLisp, şi Scheme… sunt foarte interesante.
De asemenea, mi-au fost foarte utile ca limbaje de prototip. Deşi propriu-zis nu cred c-am scris nimic spectaculos în LISP, aproape tot ce am scris în ultimii câțiva ani a fost, în diverse proporții (10-30%) exemplificat întâi în Lisp.
oana a zis,
mai 7, 2009 la 7:15 pm
Buna.Stiu ca postul e mai vechi si poate ca subiectul nu mai e printre preocuparile tale actuale,dar dupa ce-am rascolit putin rezultatele google legate de subiect,pari o persoana in masura sa-mi spuna parerea sa despre care sunt perspectivele unui programator in programarea functionala.
Eu stiu Scheme(basics) si ma intereseaza Haskell.Se aude ca Haskell ar fi
cel mai productiv limbaj functional utilizat in Inteligenta artificiala, prelucrari multimedia, Retele Petri,motoare de baze de date , analize statistice si financiare-ar parea sa aiba multe aplicatii.Concret,considerand toate vorbele de lauda ca adevarate,este el apreciat?Cat este de cautat(e posibil sa devina popular candva?)….exista programatori in Romania care folosesc mare parte din facilitatile limbajului sau doar … il folosesc pe alocuri.?
(la inceput de drum)eu sunt in cautarea unui limbaj care sa-mi placa ,care sa imi mentina interesul , sa-l stapanesc foarte bine si sa-l folosesc practic(nu doar din pura placere) ,iar pana acum programarea functionala ma tenteaza cel mai tare.
Astept raspunsul tau cu nerabdare . Multumesc pentru posturile tale legate de subiect(celealte nu le-am citit…inca)!