M-am mutat (pe jumătate)

Întrucât detaliile despre Palm Pre, newLisp şi Haskell nu stăteau bine între o poezie şi Catedrala Mântuirii Neamului, jumătatea respectivă se va muta aici. Defun nu vine de la De Fun, care mi se pare un nume imbecil.

Ne întâlnim în continuare aici, până când o să mai deschid un blog ca să am trei în pula mea.

Cel mai întârziat răspuns ever — despre programarea funcțională în România

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:

  1. Ş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ă.
  2. 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.
  3. 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 :-D ) 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ă.

Cum au mai ajuns oamenii aici

Deci în ordine:

  • Pule în cururi. Asta se găseşte pe MTV, din păcate n-am aşa ceva aici.
  • Pizde 11-18 ani. Gârlă, la orice liceu.
  • gnustep “rent a coder”. Dream on :-D
  • Masturbare tranzistori. Cred că suntem colegi la Poli.
  • mac os 9. Serios, după câte pagini de Google ajungi în final la blog-ul ăsta?
  • lisp crap. Asta da frustrare :-) .

What’s on your geeky desk?

Pentru că am pierdut (iar…) un pariu, va trebui, vrând, nevrând, să mă conformez şi să mă umilesc în public prin intermediul conținutului biroului meu. Ok, este de fapt vorba numai de una din mese — cealaltă e dedicată lucrului cu hârtie sau cu componente electronice, şi pe ea se află, momentan, un teanc de cărți de matematică, un teanc de cărți de electrotehnică, un pistol de lipit şi o sursă de laborator care pişcă rău. Pe masa de la care scriu acum se află, exceptând, evident, calculatorul, următoarele:

Bucățele de hârtie

Bucățele foarte mici de hârtie, pentru schițe rapide şi notițe uşoare. Sus, efectul Doppler. Jos, o metodă de determinare a elipticității orbitei folosind variația paralaxei. Shit.

Foi mult mai mari

Foi mai mari, pentru a) cazul în care am nevoie de schițe mai mari, sau b) mi se murdăreşte atât de tare rotița de la Mighty Mouse că nu mai face scroll.

Cani

Trei căni. Una pentru ness, una pentru ceai şi una pentru orice altceva. În funcție de cât îmi e de somn dimineața, nessul ajunge în ceaşca mică şi neagră sau în cana mare şi transparentă în care acum se află sprite. Pe fundal, o cutie de ceai care nu ştiu ce caută acolo. Chestia albastră e cablul de la bass-ul meu.

Zaharnita

O zaharniță roşie. Cred că-i evident la ce serveşte.

Telefon

Dragul meu telefon, pe care am de gând să-l schimb la un moment oarecare. Singura lui mare calitate este faptul că are un difuzor extraordinar de enervant, atât de enervant încât e imposibil să nu te trezeşti dimineața când îl auzi, fie şi numai ca să-l arunci pe fereastră.

Calculator stiintific

Calculatorul meu ştiințific. Ok, am unul şi pe Mac-ul meu, dar nu se compară.

Card reader

Card reader-ul meu, care cred că citeşte orice în afară de cartelele Metrorex. Din fericire, mi-e suficient dacă citeşte CompactFlash-ul de pe dragul meuHP 620 LX, care însă nu e pe birou de obicei.

Muzicuta Blockflote

O muzicuță diatonică în Do major şi un blockflote (ok, blockflote-ul e în sac) în Fa minor. Pentru momentele în care munca e prea plictisitoare şi am nevoie de o pauză. Sau când mă enervează vecinii.

Lamp

Lampa. Sunt foarte pasionat de orice fel de chestie în care se înşurubează vreun fel de bec sau altă sursă de lumină. Mai am trei veioze în casă :-D .

Old stuff

Şi preferatul meu: un bank de memorie cu miezuri de ferită, de pe un calculator sovietic din anii ‘60 (cred). Doar aşa, ca nu cumva să uit de unde am plecat.

Față nouă, limbă nouă, bloage, alte alea

Povestea scremetelor virtuale pe care le citiți începe acum vreo doi ani cred, în timp ce subsemnatul spunea că blogurile sunt naşpa, la propriu. Era, pentru cine-şi mai aduce aminte, vremea când blogurile începeau să fie trendy şi toată lumea avea un blog pe care scria ce-a mâncat de dimineață, cât de naşpa e Bucureştiul, cât de naşpa e cuvântul naşpa, care este sensul vieții şi de ce acesta este un sens unic. Într-o frază, locul unde toată lumea scria, ca să pară că aibă ceva de spus.

Tot pe-atunci m-a pus dracu’ să pun un pariu cu o prietenă. Kate, încă te urăsc, şi dat fiind faptul că nu ştii mai mult de trei boabe româneşte, pot să te şi înjur. Subiectul pariului a fost unul cât se poate de geeky şi l-am pierdut, iar pedeapsa a fost să-mi fac blog. Blog pe care l-am şi târât o perioadă, sub numele de Donkey’s Cave, şi l-am abandonat pe undeva. Ceva mai târziu, mai mult ca să văd cum e, m-am apucat de ăstălalt, pe care am scremut diverse prostii legate de tehnologie în principal, semineinteresante dar orişicât.

Chestia asta a fost acum în jur de un an, şi de-atunci ideea de blog a devenit mai puțin trendy (hint: a fost înlocuit cu hi5). De unde şi schimbarea la față de-aici — temă, limbă şi, precum se va vedea, şi conținut.

Să ne citim cu bine :-) .