Soluţii Enterprise

Cu câteva zile în urmă am citit un comentariu la adresa articolului despre Web 2.0. După ce i-am răspuns autorului, m-am gândit că ar fi bine să public acest comentariu împreună cu răspunul meu, pentru că este mai aparte. Iată ce scrie Lucian:

Dragul meu, ar fi cazul sa te informezi mai mult in ceea ce priveste Web 2.0. Daca cu atat ai ramas in cap de la simpozionul domnului Buraga (daca nu ma insel el a fost cel care sa ocupat cu asta) inseamna ca ai mici probleme de atentiea.
Ca mici directii pe care sa le urmezi ca sa dai jos praful de pe Web 2.0 ar fi:
-Social Networking
-Social Bookmarking
-Social software
-Semantic web
-clustering (user, preferinte, )
-Servicii web
– SEO
Si multe alte lucruri care sunt necesare pentru a incepe sa intelegi despre ce este vorba cand spui de Web 2.0
A si referitor la saracul php…. este printre cele mai comode,fiabile si sigure metode de scriptare. Asta daca nu cumva vrei sa iti expui talentul lucrand cu chestii scarboase precum Python sau XSLT care sunt axate pe programare functionala, Sau tu ai dori sa incerci sa creezi aplicatii frumoase .Net ASP sau JSP, care au bug-uri din nastere
Parerea mea este ca inca esti incepator in ceea ce priveste programarea , si habar nu ai sa faci distinctia intre evolutia paradigmelor de programare si evolutia limbajelor de programare.
O zi buna.

Iată şi răspunsul meu:

Eu vreau să sper că am fost destul de atent la November Web 2005, mai mult, am ridicat acestă problemă şi acolo.

După cum am spus şi in comentariu anterior, sunt de accord ca find o evoluţie a Web-ului crearea de conţinut de către utilizatori. Aici cred că intră foarte bine „Social Networking”, „Social Bookmarking” etc. Dacă prin „Social Software” te referi la comunicaţiile electronice, atunci da, intră şi ele în acestă categorie.

Dupa cum s-a precizat chiar în deschiderea November Web 2005 de către şeful catedrei de informatică de la Universitatea Al. Ioan Cuza [îmi cer scuze, nu îmi aduc aminte numele dânsului], Web-ul Semantic ar fi următorul pas (următoarea versiune) dupa Web 2.0. Sincer, sunt şceptic de reuşita lui, eu nu consider că un calculator este capabil să „gândească”. Timpul ne va spune dacă am dreptate sau nu.

În ceea ce priveste „clustering”, din câte ştiu eu asta este legat de sisteme distribuite, sisteme care se folosesc de vreo … 20 de ani. Nu vad legătura cu Web-ul 2.0.

SEO, adică Search Engine Optimization, este şmecheria managerilor (nu pot s-o numesc altfel) de a „păcăli” motoarele de căutareîin a arăta pagina lor cât mai sus. După cum ziceam, directorii de marketing s-au prins că pot face bani de pe urma Web-ului.

Nu te pot contrazice, PHP este destul de comod (asta daca te limitezi la proiecte mici, altfel … incepe sa fie mai greu). Din păcate, nu este nici fiabil si nici sigur. Vei găsi liniştit un „PHP injector” foarte uşor pe Internet. Mai mult, multe dintre firmele care oferă găzduire bazată pe PHP au o versiune de PHP compilată prin 2004. Nu prea e bine. Dupa părerea mea, PHP-ul ar trebui să rămână la scopul său iniţial, adică Personal Home Page [script].

XSLT din câte ştiu eu este o metoda de translatare de cod, fie el de program sau informaţii utile (fişiere xml in general), nu un limbaj de programare. Mai mult, metoda XSLT se poate folosi din aproape orice limbaj de programare.

Python este un limbaj imperativ, exact ca şi Pascal, C, Java sau PHP. Limbajele funcţionale sunt Scheme, CaML, Huskell, JavaScript (nu Java) etc. Bănuiesc insă că tu te referi la limbaje procedurale, adică limbajele imperative. Limbajele functionale lucreaza cu funcţionali, adică in general primesc şi mai ales întorc parametrii care sunt funcţii. Poti să consideri că este oarecum similar cu „delegaţii” din C#.

În ceea ce priveşte ASP.NET (adică C# sau VB.NET) şi JSP (cred eu că te referi şi la Servet-uri), acestea sunt metode mult mai bune. În primul rând sunt mult mai sigure, fiind limbaje compilate (ceea ce înseamnă verificarea completă sintactică – erori de sintaxata -, şi mai ales semantică – erori de sens, adică de exemplu variabile care sunt folosite fără a fi declarate – şi, spre deosebire de mai vechile compilatoare, protecţie împotriva „buffer overflow”-urilor). E destul de greu să dai jos masina virtuală java sau sa „strici” clasele .NET. Din punctul meu de vedere insă, şi limbajul Pascal este mai bun decat PHP, insă trebuie scrise câteva biblioteci în plus. Am încercat şi merge foarte bine.

Este adevarat că paradigmele de programare au evoluat, dar din păcate au evoluat în mare parte către ideea „este mai ieftin să cumpărăm hardware bun, decât să angajăm programatori pricepuţi”. Andrew Tannenbaum afirmă in cartea „Sisteme de operare moderne” că „Mai demult [anii ’80, ’90] lumea ştia să realizeze programe mici şi eficiente, insă odată cu evoluţia hardware-ului, acest obicei s-a pierdut”. Nu pot să nu-i dau dreptate, o să te rog să te uiţi la Windows Vista, este de câteva ori mai mare decât predecesorul său, merge mult mai încet, însa realizează aceelaşi lucruri ca şi Windows XP. Este un exemplu foarte bun.

Nu pot să spun că sunt prea fericit cu direcţia în care se pare că se îndreaptă lumea software. Ceea ce afirmă Andrew Tannenbaum este foarte adevărat, nu mai ştim să facem programe mici şi eficiente. Toată lumea realizează soluţii enterprise, programe integrate, imense care fac tot ce se poate. Aceste programe sunt promovate cu slogane de genul foloseşte tehnologia Java de ultimă oră sau tehnologia AJAX integrată etc.

Să luăm ca exemplu programele pentru telefoane mobile. Eu am un Nokia E70 (am ataşat o poză, pentru a fi mai sugestiv despre ce e vorba). Acesta rulează Symbian 9,1, sistem de operare modern pentru telefoane mobile. La cei 200 de Mhz pe care îi are procesorul meu împreună cu cei 64 de MB de RAM (adică dublu faţă de calculatorul Pentium pe care l-am avut eu, care insă avea doar 16 MB de RAM), nu este în stare să redea un fişier mp3 în timp ce navighez pe Internet. Îmi aduc aminte însă că sub Windows 95, pe calculatorul meu Pentium, mă jucam liniştit în timp ce ascultam muzică şi aveam câteva pagini de Internet afişate.

nokia e70

Vă puteţi imagina cât de bună este acesta soluţie integrată de telefon, cât de eficient au fost scrise programele.

De ce e aşa? Foarte simplu, programatorii buni sunt puţini şi scumpi. S-a ajuns la dezvoltarea unor limbaje de programare (în general numite limbaje de scripting) care sunt foarte simple, adică oricine poate face un program. Dezavantajul este însă eficienţa. Puteţi fi siguri însă că la baza sistemelor de operare (nucleu şi driver-e) sau a limbajelor de nivel foarte înalt (cele cu paradigme de programare moderne) stau tot limbajele clasice şi metodele conveţionale de programare. Dar aşa … sunt puţini programatori care trebuie plătiţi bine.

Este păcat că nu se mai găsesc programe mici şi eficiente. Căutând nişte documentaţie pentru MySQL, sistem de gestiune a bazelor de date simplu şi mic, am citit că a fost preluat de către Sun Microsystems. Cred că este doar o chestiune de timp până cei 25 de MB vor deveni cei 250 de MB de soluţie integrată MySQL. Va avea aceelaşi funcţii de bază, însă va fi de câteva ori mai mare. Ne mai rămân (până vor fi şi acestea achiziţionate) PostGreSQL şi SQLite.

Îmi aduc aminte de un moment din anul I de facultate. Eram la primele cursuri de programare, şi eram foarte supărat că învăţăm Java. Nu este un limbaj prea eficient din punct de vedere al vitezei şi nici nu poate fi folosit prea bine în programare de bază. Profesoara de la curs, doamna Adela BUZULOIU, o persoană deosebită, mi-a răspuns foarte calm: „Uită-te în sală [erau peste 100 de oameni], câţi de aici crezi tu că vor ajunge să facă compilatoare sau driver-e? Majoritatea vor ajunge să programeze în companii mari după nişte tipare bine stabilite.” A avut dreptate.

Programarea ajunge să fie tehnoredactare … de cod.

6 răspunsuri to “Soluţii Enterprise”

  1. Andrei Says:

    Excelent post. Concluzie perfecta.

    Trebuie sa il traduci si in Engleza.

    Nu sunt de acord cu parerile tale legate de viitorul calculatoarelor, avand in vedere solutiile „integrate” care apar acum pentru procesoare pe baza de material genetic, micsorarea permanenta a tehnologiei si interfatarea cu omul in alte moduri.

    Cred ca ceea ce ESTE adevarat este ca cineva (problema = CINE?) ar trebui sa coordoneze aceste eforturi astfel incat rezultatul sa nu fie unul din filmele SF din categoria „nu faceti ca ei”.
    Stiti genul (T2: Judgement Day) in care omenirea isi vede posibilul viitor.

  2. bulibuta Says:

    Sunt de-acord… ma bucur sa mai intalnesc oameni care au idee despre ce se intampla si cum sunt lucrurile de fapt. Tine-o tot asa!

  3. Alexandru Says:

    Andrei, ma referam strict la software in articol, nu la hardware. Abia astept sa vad noile tipuri de procesoare pe piata, deoarece este clar ca electronica bazata exclusiv pe silicon incepe sa isi arate limitele.

    Problema mea este cu software-ul imens, care „nu face nimic deosebit”. Spre exemplu, astazi am avut nevoie sa realizez un XML in Java. In loc sa pot scrie ceva rapid si simplu, am avut nevoie de peste zece clase intermediare. E un pic cam mult.

  4. ionut Says:

    Lucian, vreau sa zic ca post-ul tau imi demonstreaza exact cat de „bine” a inteles multa lume ce inseamna Web 2.0.

    Sa consideri XSLT limbaj de programare? Come on, e ca si cum ai zice ca HTML si CSS sunt limbaje de programare (ceea ce nu sunt)! Da si tu un search pe google dupa „define: xslt” si o sa vezi ca zice : A Transformation Language to convert XML/XSL documents into HTML suitable for a browser to display.
    Si ce treaba are clustering-ul cu Web 2.0? E o tehnologie folosita in servere de foooarte multi ani. Conform unei cautari pe google ca mai sus clustering este: „Connecting two or more computers together in such a way that they behave like a single computer. Clustering is used for parallel processing, for load balancing and for fault tolerance.”
    In sfarsit, nu o sa mai continui cu aceasta argumentare caci consider ca nu are rost. Eu consider ca Web 2.0 e modul departamentelor de marketing a unor firme mari sa zica: „Am reinventat web-ul, am venit cu ceva nou si tare! Show me the money!!!”. Da, aduce anumite elemente noi, foloseste anumite tehnologii mai noi sau mai vechi intr-un alt mod, dar sunt ele bune?
    Hai sa incep cu AJAX (un nume care e pe buzele tuturor cand se vorbeste de web 2.0), care de fapt la e JavaScript si WebService-uri, folosind XML, tehnologii care exista de mult timp inaintea AJAX-ului. Datorita lui, printre altele acum putem avea in browser aplicatii desktop. Dar cat de practic e? Ai vazut vreodata de curiozitate cat trafic in plus genereaza si cat consum de resurse suplimentar exista pe server din cauza lui? Studiaza si o sa ramai surpins!
    De asemenea, retele de social networking … hmmm, ce e as nou la ele? Site-urile mai vechi in domeniu dating-ului aveau facilitati de genul asta cu ani in urma.
    Web 2.0 e un trend, care aduce anumite imbunatatiri, dar va rog, nu va lasati pacaliti de toate articolele de „specialitate” care il ridica in slavi … nu e asa „roz” pe cat credeti!

  5. Dumitru Says:

    Ma bucur ca mai vad lumea care mai vorbeste si pe intelesul omului mai novice in domeniu,ca mine…nu vorbeste super elevat si nu il intelege nimeni…dar nu stie nici el despre ce vorbeste(in domeniu ma refer)…dar e super progamator sau super web-master…

  6. Nicusor Says:

    Lucian, cu durere in suflet ,ma vad nevoit sa zic:”nu ai nici o treaba cu programarea,n-ai vazut calculator in viata ta…”…incearca sa te limitezi la SOLITAIRE,…sau in cel mai rau caz,joaca DOTA!

Lasă un răspuns către Dumitru Anulează răspunsul