A pune punctul pe i

Posted in Various by Nightwind @ Oct 2, 2007

Cei care ma stiu cunosc faptul ca nu sunt foarte vocal atunci cand vine vorba de flame-urile zilnice de pe net. PHP vs ASP, Linux vs Windows, Apache vs IIS, MS Office vs Open Office. Preferintele mele au fost marcate si le sustin cand este cazul, dar nu dau replici sustinatorilor ideii opuse.

Totusi azi am dat peste doua puncte de vedere care merita o replica. Ideile respective au fost luate de pe blogul lui Andrei Maxim

Primul punct de vedere se invartea in jurul propunerii numita OOXML, care a ratat ratificarea drept standard. Nu ma leg de argumentarea referitoare la standard insa am gasit o intrebare interesanta, pe care o voi cita:

Acum vine întrebarea: de ce au votat majoritatea “membrilor O” propunerea pentru standardizarea OOXML-ului? Datorită influenţelor Microsoft, asta e cert. Dar ce fel de presiuni s-au făcut? Dacă luăm urma banilor, cred că putem ghici. În primul rând, majoritatea ţărilor din categoria O sunt ţări sărace: Argentina, Armenia, Belarus, Brazilia, Bulgaria, Chile, Columbia, Costa Rica, Croaţia, Cuba, Egipt şi aşa mai departe, fie ţări prea mici ca să conteze, gen Luxemburg. Austria şi posibil Thailanda să fie singurele excepţii de pe lista respectivă. Majoritatea, deci, ţări în curs de dezvoltare, cu puţini bani de cheltuit pentru IT.

Deci, ce ar câştiga ele dacă ar vota pro-Microsoft? Nu sunt ele candidatele ideale pentru Linux cu OpenOffice? Cum ar putea face presiuni o firmă care cere mulţi, mulţi bani pentru software? Cred că aceasta e întrebarea cea mai interesantă.

Raspunsul este extrem de simplu. In statele sarace majoritatea institutiilor educational-culturale sunt dependente sau chiar direct administrate de stat. Iar Microsoft doneaza din greu respectivelor institutii soft si echipamente. Daca institutiile statului promoveaza arhitecturile Microsoft prin folosirea softului si a standardului, diversele institutii private dependente (vezi cabinete medicale, notariate, etc) vor f nevoite sa cumpere softul necesar unui schimb de informatii consistent. De aici isi scoate Microsoft banii adevarati.

Desigur, ar fi mai ieftin si mai facil a se trece la arhitectura Linux, dar atata vreme cat scolile se comporta ca si sclavi ai Microsoft (la UBB cate laboratoare sunt dotate cu Linux? 0? Cum ar putea iesi specialisti “open” cand Windows e practic impus?) sansele de a obtine generatii de specialisti IT pe arhitecturi alternative sunt nule (de aparut, apar, dar nu in numarul necesar).

A doua replica o dau unei mentiuni din articolul “De ce nu voi invata PHP niciodata” si mai precis:

În PHP aplicaţiile sunt în general 1-tier (cod care amestecă generarea de HTML cu apeluri în baza de date) sau 2-tier (o porţiune de cod lucrează direct cu baza de date şi o porţiune de cod aranjează datele primite şi generează HTML)

acesta fiind si singurul argument dat de autor pentru a motiva decizia declarata in titlu. Nu contest decizia (si eu am decis ca nu voi invata vreodata ASP.NET, atata doar ca am argumente mai numeroase si mai consistente) insa contest afirmatia. Autorul face presupunerea implicita ca faptul ca majoritatea site-urilor facute cu PHP sunt 1-tier dar ca acest fapt e datorat limbajului in sine. Eroarea logica este evidenta: faptul ca un developer sau altul a ales sa nu se complice cu un model arhitectural atunci cand nu considera necesare e o decizie constienta, nu una impusa. Amestecul de HTML cu cod PHP e de domeniul trecutului de ani buni, separarea 3-tier fiind o practica standard in PHP inca de la introducerea versiunii 5 care ofera toatea mecanismele necesare separarii. Faptul ca unii developeri aleg alta cale in situatii particulare e o alegere, la fel cum pot foarte bine declara toate variabilele unei clase Java publice si nu voi folosi deloc getteri si setteri. Limbajul ofera aceasta posibilitate si in unele situatii particulare pot alege aceasta cale, dar asta nu tine de limbaj ci de developer. Asta nu inseamna ca limbajul are ceva ci mai degraba ca developerul nu e prea sanatos.

Codare placuta.

3 Comments »

  1. Abia acum am observat acest răspuns la ce am scris eu, sper doar să nu fie prea târziu pentru un drept la replică.

    În primul rând, sunt ferm convins că infrastructura laboratoarelor nu are de-a face cu genul de specialist care ajungi să fii mai târziu. Da, nu o să te loveşti de Perl în anul I, abia târziu o să ai ocazia să lucrezi cu Lisp, dar o persoană care este aproape de acest domeniu nu învaţă doar ce se predă la şcoală. Dimpotrivă, facultatea îi oferă mici ajutoare, gen “cum să fac un test de performanţă pe o aplicaţie web şi cum să înţeleg rezultatele”, grosul venind din experienţe proprii.

    Din ce în ce mai des mă văd obligat să subliniez că banii sunt cei care decid. Problema principală la Windows e că licenţa e scumpă. Nu codul sursă, nu tipul de licenţă ci costul acesteia. UBB a putut instala software cu licenţă pe multe calculatoare la un preţ mic sau nul. Poate că un Ubuntu ar fi fost mai ieftin, dar ar fi fost greu de găsit oameni care să facă o administrare bună (însă ştiu personal câţiva studenţi din UBB care se mişcă excelent pe Windows) şi ar fi fost o problemă la nivel de personal auxiliar (secretare, bibliotecare, etc) şi probabil de migrare a datelor din formatele curente în ceva care să fie suportat pe Linux.

    Eh, şi întorcându-ne la experienţe, cum le obţii? Să zicem că ţi se pare interesant PHP-ul. Păi te uiţi în stânga, te uiţi în dreapta. Apoi scrii cod. Am avut contact cu peste 20 de proiecte scrise în PHP, unele gen Wordpress, dar majoritatea dezvoltate de programatori români. Nu intru în detalii, dar arhitectură canci. (Apropo, ai spus că “amestecul de HTML cu cod PHP e de domeniul trecutului de ani buni”. Eu am vorbit de cod SQL, nu PHP).

    Comunitatea de dezvoltatori în PHP e foarte interesantă, dar majoritatea scriu cod prost pentru că e un limbaj care se învaţă uşor şi oferă multă putere (acum câteva luni vorbeam cu un proaspăt angajat care-mi spunea că preferă PHP în loc de Java pentru că în PHP poate primi valori nule din baza de date fără să-i dea aplicaţia erori). La fel, majoritatea programatorilor de Visual Basic scriu cod prost.

    În plus, eu vorbeam şi de Ruby on Rails, poate chiar mai mult decât ASP.NET. La momentul respectiv, aşa îmi câştigam pâinea şi de aceea a apărut în text. Însă nu o să încerc să te conving să te muţi pe ASP.NET :)

    Am impresia că micul meu text e posibil să fie interpretat altfel, poate dintr-o postură mai pro-Microsoft (din partea mea) decât ar fi cazul. NU cred că ştiai că, de exemplu, astă-primăvară vorbeam cu Kurt von Fink de la Ubuntu să trimită 100 de CD-uri cu Ubuntu pentru UPB. Sau că din iarna lui 2006 sunt membru ROSI şi din 2005 sunt Microsoft Student Partner. Când am scris textul, eram angajat ca programator pe .NET Framework, dar dacă te uiţi prin loguri, ai să vezi că am scris aceste rânduri din Safari 3 pentru Mac OS X şi sunt pe Mac de mai bine de un an.

    Sunt doar unelte, in definitiv :)

    Comment by Andrei — October 23, 2007 @ 6:29 pm

  2. Ai, desigur, dreptate. Scoala ofera destul de putin fata de ceea ce este necesar, dar daca nu vii la facultate cu un oarecare bagaj de cunostinte de dinainte si accepti direct bazele pe care ti le ofera scoala, este extrem extrem de greu sa ies din tiparul care ti se impune (direct sau indirect).

    Cand am intrat la facultate (deja vorbesc ca un batran) erau destui care aveau deja o idee despre ce vor sa invete. Cei care au preferat unelte free sau open-source s-au axat pe acea directie, multumindu-se sa treaca cursurile care nu-i priveau.

    Dar ce ma deranjeaza este ca putinul acela poate fi folosit mai util oferindu-se o alegere directa. Nu cer sa se treaca toata infrastructura IT pe Ubuntu ca sa fie nevoiti si secretarele sa invete, sau sa se porteze bazele de date ale facutatilor, etc. Dar din 20 de laboratoare macar 4 ar putea oferi o varianta sau alta de Linux instalat corect care sa ofere un mediu de programare alternativ.

    Mergan pe principiul ca limbajele sunt unelte, de ce pentru un curs de programare web sa se impuna un limbaj in loc sa se ofere o alegere?

    Sunt totusi 4 ani din viata pe care ii petreci de bine, de rau invatand, lucrul acesta n-ar trebui sa se transforme in punerea de ochelari de cal celor care isi primesc bazele mai serioase la universitate. Perspectivele ar trebui largite, nu limitate. Sigur ca asta tine la final de individ, dar universitatea ar trebui sa ajute, nu sa puna bete in roate.

    Si ca fapt divers, de final, si eu ma reprofilez pe Ruby on Rails ;)

    Comment by Nightwind — October 23, 2007 @ 8:24 pm

  3. Din păcate, lipsesc oamenii care pot şi vor să facă ceva. :(

    Comment by Andrei — October 24, 2007 @ 7:56 am

RSS feed for comments on this post. TrackBack URI

Leave a comment