iunie 14, 2009 la 10:22 am (Bârblogul Măgarului, LISP, Programare)
Tags: haskell, LISP, Programare, romania, scheme
Dintr-un motiv necunoscut mie, s-ar părea că n-am primit alertele de la comentariile din ultima vreme. Aşa că va trebui să-i răspund Oanei după… hmm… o lună și jumătate
. O să răspund în ditai postul în caz că mai interesează pe cineva subiectul, şi în speranța că în felul ăsta o să ajungă şi la Oana
.
Deci, Oana întreba:
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)!
Vis-a-vis de asta am următoarele lucruri de zis:
- Şi eu sunt de părere că Haskell ar fi, la ora actuală, cea mai bună alegere, în sensul că este activ dezvoltat, are cel puțin un compilator bun, este portabil şi are un număr mare de biblioteci. Problema principală cred că e legată de documentație, fiindcă nu e prea bine adaptată unei audiențe formate din oameni practici. De asemenea, stai departe de Real World Haskell, e o introducere fără prea mult simț pedagogic și de pe la capitolul 8 o să te întrebi cum naiba poate cineva să învețe rahatul ăla. Scheme e de asemenea o alegere bună, din aceleași motive (minus documentația care e de mult mai bună calitate), dar așteaptă-te la coșmaruri legate portabilitate. De asemenea, vei lua cunoștință cu situația în care vei reinventa cel puțin o roată, fiindcă există mai multe implementări majore, fiecare având în plus ceva față de oricare celelalte dar având în minus cel puțin un feature util. Mie unuia cel mai practic limbaj din domeiu mi se pare Common Lisp (în principiu datorită macro-urilor și a facilităților de programare imperativă), dar comunitatea CL a avut grijă să zădărnicească aproape orice încercare de utilizare practică.
- Din câte știu, nu există nicio firmă din România care să folosească Haskell sau Scheme pentru proiecte serioase (a se citi: pentru care să te plătească). Dealtfel în general limbajele astea sunt folosite azi aproape exclusiv pentru SF-uri ca cele menționate de tine mai sus (analiză financiară, inteligență artificială, data mining ș.a.m.d.). Desigur, lucrul ăsta nu e surprinzător ținând cont că un număr mare de firme din România abia încep să afle că există și alte tehnologii decât PHP şi MySQL.
- Ca părere personală: programarea funcțională nu cred că e o paradigmă cu aplicabilitate largă. E perfect adecvată câtorva domenii, dar în mare parte nu mi se pare o soluție e scară largă. Eu unul am o problemă cu o paradigmă care spune că anumite operații (între care incidental intră cele de I/O
) sunt nocive pentru programare și ar trebui evitate. Totuși, cred că integrarea facilităților de programare funcțională în cadrul limbajelor imperative actuale (un drum pe care Python, de exemplu, e de mai multă vreme și pe care, dacă nu mă înșel, a intrat nu demult și C#), e o soluție mult mai utilă și mult mai expresivă.
Scrieti un comentariu
iulie 27, 2008 la 11:30 pm (LISP, Programare, Tehnologicale)
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.
Pagina oficială e aici.
3 Comentarii