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ă.