-
De cand am vazut si video-ul cu Douglas Crockford din postul trecut ma tot gandeam la motivele pentru care cineva se apuca sau se lasa de programare.
Chiar daca multi nu mai stiu motivele pentru care au pornit pe acest drum un lucru e sigur, undeva a existat o motivatie si in general aceasta motivatie vine de la feedback.
Daca stam sa analizam cel mai simplu si cel mai popular limbaj de markup este HTML. In ziua de azi foarte multa lume stie HTML, de ce? Ai un feedback direct! Nu trebuie sa studiezi prea mult ca sa ai primele rezultate. Evident sa faci o pagina web nu se rezuma doar la HTML de baza, dar pentru un inceput de drum este o motivatie buna.
Pe de alta parte cred ca am auzit mai multi programatori amatori care vor sa lucrez in PHP decat in orice alt limbaj de programare (probabil si faptul ca lucrez in PHP sa-i influenteze pe cei care mi-au spus asta). Daca nu ne uitam la detalii e relativ ciudat avand in vedere ca traditional in scoala programarea se invata cu limbaje cum ar fi C, C++ si Pascal. Atunci de ce alege asa multa PHP? Simplu, daca sti HTML poti sa faci operatii simple fara sa studiezi prea mult, asta fiind una din partile bune ale acestui limbaj vs. cele de mai sus.
Dar mai sunt si limbaje cum ar fi JavaScript. Imi aduc aminte acum 7-9 ani cand erau foarte populare butoanele “nu apasa”. Am studiat (ca doar se putea vedea) scriptul din spate de la unul, de fapt era o combinatie intre alert(), confirm(), prompt() si window.open. Cat de ridicol poate sa para dar mai nimeni nu statea sa inteleaga ce se intampla de fapt acolo, majoritatea luau cu copy/paste. Probabil asta a facut JavaScript limbajul atat de popular in zilele astea… si atat de putin inteles.
Alaltaieri mi-a spus cineva ca “nu-i mai place programarea” de cand a intalnit obiectele. Suna cunoscut? De fapt eu cand am intalnit prima data obiectele a fost in PHP, iar autorul (Matt Zandstra) spunea “Object-oriented programming is dangerous. It changes the way you think about coding, and once the concepts have a hold on you, they don’t let go” (Teach Yourself PHP 4 in 24 Hours). Ce pot spune, nu mi se parea de loc periculoasa programarea asta la momentul respectiv, chiar de loc, de fapt mi se parea o chestie foarte ciudata si inutila. Pe de alta parte dupa ceva timp (destul de mult) am inteles care este rostul si avantajul acestei abordari.
Cu aproape un an in urma cred am descoperit o platforma foarte interesanta GreenFoot, ce e asa interesant? Pai niste profesori universitari se tot gandeau cum sa atraga atentia studentiilor asupra POO in limbajul Java. Ei au abordat lucrurile invers de dragul feedback-ului. Primul lucru pe care il vede studentul sunt obiectele in actiune, cat se poate de active si dinamice. Dupa asta studentul invata sa modifice metodele, apoi sa adauga metode si proprietati si de abea apoi sa mosteneasca clase, sa le construiasca, sa relationeze etc. Un pic invers fata de cum am invatat eu in facultate sa fac o clasa pentru gestiunea unei facturi sau a unei masini care… nu a ajuns niciodata sa fie o adevarata masina din punct de vedere vizual. Rezultatul platformei: studentii lucreaza cu obiecte chiar fara sa cunoasca detaliile limbajului si a programarii procedurale, apoi in timp intra in detalii, dar pe drum construiesc, dezvolta.
Tragand o concluzie, daca vrei sa predai programare trebuie sa cauti feedback-ul, daca vrei sa inveti programare, din nou feedback-ul este cheia. Eu de exemplu cand am invatat POO in facultate nu intelegeam mare lucru din clasele in C++ care le faceam, nu reuseam sa gasesc utilitatea cu adevarat, dar eu m-am straduit iar mai tarziu am inteles adevarata putere a POO. Cum ramane cu elevii care nu sunt motivati sa faca asta?
-
M-am saturat, sunt mult prea multe limbaje de programare si scripting in ziua de azi.
De exemplu, daca vrei sa faci un site nu foarte complicat ai nevoie de:
- HTML
- CSS
- JavaScript
- PHP sau alt limbaj server-side.
Si totusi… aplicatiile web sunt totusi simple.
Poate o sa spuneti ca nu este o problema atat de mare pentru ca acestea au stuctura si “parinti” comuni.
Adevarat, sa incepem cu un limbaj cum este C (aparut in anul 1972). In anii “80 lumea avea sa cunoasca o noua abordare in lumea programarii, universul orientat obiect. Si a aparut C++ (1983). Totul era bine daca lucrurile ramaneau asa simple, dar nuu, a aparut si Objective C, un alt descendent obiectual (folosit de Apple in principal). Pentru ca lucrurile nu erau destul de “simple”, cei de la SUN s-au gandit sa faca un alt limbaj care avea sa fie obiectual in intregime. Si asa a venit pe lume Java. Microsoft au incercat sa preia acest limbaj dar din pricina unor probleme de licenta s-au hotarat sa faca limbajul lor mai bun si mai destept decat ce era deja pe piata. Iar dupa ceva vreme s-a nascut Fat-Frumos, sau C#. Si toate acestea pornind de la un singur limbaj…
Multi au impresia ca Pascal a murit undeva pe la finalul “80 inceputul “90, nu va inselati, dar inainte sa moara s-a transformat in Delphi, o versiune de Pascal orientata obiect.
Iar ca totul sa fie mai complicat, limbajul C# a fost proiectat de cel care a realizat compilatorul Turbo Pascal de la Borland.
Adevarul este ca nu s-a ajuns la un standard si nu cred ca se va ajunge prea curand, chiar daca majoritatea OS-urilor au la baza C.
Mi se pare inuman sa trebuiasca sa inveti atatea limbaje de programare, iar in functie de ce ai nevoie in general schimbi limbajul, iar daca schimbi OS-ul de cele mai multe ori trebuie sa schimbi si limbajul (mai putin la limbaje cum ar fi Java). Incep sa cred ca este mai bine ca un limbaj din trecut sa dispara, pana la urma limbaje precum Cobol (1959) inca se mai folosesc, iar mult mai tanarul Pascal s-a dovedit depasit.
Oricum atunci cand invatati un limbaj sa nu aveti impresia ca o sa ajungeti sa deveniti un expet universal in el, un limbaj simplu cum este PHP are posibilitati nebanuite de multi si chiar daca trecem cu vederea lucruri cum ar fi PHP-GTK si PHP-QT tot mai ramand o groaza de framework-uri si module optionale.
In cazul unui limbaj cum este C nici nu mai are rost sa vorbim, acesta poate sa fie folosit pentru aproape orice, incepand de la drivere pana la pagini web inclusiv serverele pe care acestea ruleaza.
Pana si limbaje de scripting care pana nu de mult erau considerate “de jucarie” cum este JavaScript, pana si acestea au posiblitati nebanuite astazi, de la pagini web, pana la plug-inuri FireFox si nu numai.
Chiar si cand vine vorba de office, MS Excel suporta VB Script, pe cand Open Office suporta JavaScript.
O data ce ai intrat pe fagasul acesta al programarii, ar trebui sa ai multa rabdare si pasiune, altfel nu o sa iesi prea bine…