Una din caracteristicile unui om este sa fie in linie cu moda, sa fie modern si atunci cind la TV apare publicitate in care se zice ca daca fumezi "Marlboro" atunci esti un tinar de success, sanatos si plin de viata. Cu toti defapt stim despre efectele fumatului, nu?
Dupa cit se vede la fel se petrece si in domeniul IT, e si clar, in IT lucreaza la fel oameni. Ultimii citiva ani tot mai mult aud sa se vorbeasca cit de cool in limbajele de programare e sa fie prezenta la tipuri dinamice de date, closure, programare functionala, etc si in cit de prosti sunt aia care, inca folosesc limbaje tipizate, "Old school la gunoi".
Parerea mea despre limbajele tipizate si cele dinamice precum si despre celelalte trenduri moderne este bazata pe experienta luat in programarea in limbajele precum Java, PHP si sa fie si JavaScript. EI multi ar sari cu vorba ca PHP nu este un limbaj si ca nu pot avea o parere solida doar pe baza experientei cu acesta, eu ii voi ignora.
Sa o incep cu limbajele tipizate si cele dinamice, caci dupa parerea mea cea mai mare valmaseala se face aici. Sunt de acord ca la un moment data tipizarea dinamica aduce beneficii, intr-o singura variabila poti sa pastrezi diferite tipuri de date, acum un string, mai devreme un float iar dupa urmatorul bloc ii asignezi un object, cool nu? Da in realitate cool pina nu ajungi cind trebuie sa te intrebi, hmm, dar ce am aici eu oare? string, float, object, etc.
Un programator cu experienta si sistematic probabil nu ar avea asa probleme, ai success daca in echipa toti programatorii sunt sistematici, iar daca in echipa sunt si cei fara experienta sau indeferenti, atunci viata ta se preface in iad. Ei ar fi si o solutie sa folosesti notarea unguriana a variabilelor, dar atunci cu ce asa mult se difera de a vea variabile tipizate? In limbajele tipizate in realitate ai mai mult linii din cod dar si o structura a variabelelor mult mai clara, nu? Stii ca acesta la sigur e un int, iar ala e un string.
In lumea Java tot mai mult se aude despre introducere in JDK8 a closure si se face multa valmaseala in jurul acesteia, dar oare in realitate este in atit de necesara, sau doar cei care au privit publicitatea despre Marlboro si au inceput sa fumeze, la fel vor sa introduca niste tranduri moderne si nu obligatoriu necesare intr-un limbaj stabil si matur?
Closure e o functie anonima care poate fi asignata unei variabile sau care poate fi plasata ca argument intr-o metoda. La moment aceasta functionalitate in Java se poate de obtinut prin clase anonime, e mai mult cod, intradevar si ceva restrictii. Oare introducerea la closure va aduce mai multa claritate si functionalitate? dupa parerea mea nu, caci aceste mecanism e ca si un bat cu doua capete. Un capat va aduce beneficii, vei avea mai pute line de cod si mai multa dinamicitate, iar pe de alata parte aduce mai mult haos in cazul in care iaras in proiect ai oameni fara experienta sau indeferenti.
Privitor la programarea functionala in limbaje OOP inca nu am o parere caci nu am analizat ideeile pe acest subiect.
Totul de mai sus este o parere subiectiva proprie, dar consider ca un limbaj strict si tipzat aduce o stuctura sanatoasa si stabila in cadrul unui proiect, dar si efort mai mult in al construi.

No comments:
Post a Comment