Web 2.0 … sau nu?

Citeam săptămâna trecută un blog al unei perosane din domeniul IT şi am rămas şocat când am dat peste o frază de genul  Ca „profesie de bază” sunt programator PHP… Nu o să pot niciodată înţelege cum o persoană care are studii superioare în domeniul informaticii şi al calculatoarelor poate afirma aşa ceva. Dacă acesta este rezultatul după patru sau cinci ani de facultate, e foarte trist, deoarece facultatea nu scoate programatori. Nu ştiu dacă este cazul persoanei citate anterior (pentru că nu o cunosc), dar din păcate din ce în ce mai multe persoane consideră că facultatea nu este bună de nimic, şi în consecinţă, ajung să rămână la stadiul de progarmator PHP.

Se pare că sunt împotriva PHP-ului. Nu, dimpotrivă. Ceea ce însă mă deranjează pe mine este că toată lumea ştie să meşterească un site (programatori PHP „adevăraţi”), dar prea puţină lume ştie ce se ascunde în spatele simplului limbaj de programare şi a Web-ului în general. De aici ajungem la subiectul la Web 2.0. Uau! Marea descoperire a ultimilor ani. Aplicaţii Web, Servicii Web, Ajax, CSS, XML sunt numai câteva din noile tehnologii descoperite de draguţii noştrii programatori web. Ei bine, toate acestea existau de cel puţin 10 ani. Nu e nici un fel de tehnologie noua, nici un fel de descoperire fantastică.

Web 2.0… Am participat în 2005 la Iaşi la un seminar despre tehnologii web, September Web 2005. Scopul mai mult sau mai puţin declarat al seminarului a fost descrierea Web 2.0. Definiţia pe care am dedus-o în urma simpozionului suna cam aşa: Web 2.0 este folosirea Internetului pentru comunicare, informare şi prelucare de date. Adică, mai nou Internet-ul este folosit pentru chat, mesaje instant, email, prelucrare de documente pe Internet şi alte servicii, şi nu numai pentru vizualizarea paginilor HTML. Nu-mi venea sa cred ce aud.

Chat – Internet Relay Chat, protocol pus la punct în 1988 în Finlanda, menit să înlocuiască un protocol mai vechi. Eu foloseam mIRC, un program client IRC, în 1998.

Email – Poşta electronică, a fost unul din cele mai vechi servicii oferite de prima reţea între facultăţi, Internetworking (de unde astăzi termenul de Internet) , pus la punct în anii 70. A ajuns să poată fi accesat prin intermediul paginilor Web în 1998 când Yahoo! a lansat serviciul său public de poştă electronică.

Mesaje InstantTalk este un serviciu UNIX care din anii 80 oferea deja posibilitatea transmiterii mesajelor scurte între utilizatorii unuia sau mai multor sisteme. AOL Messenger, lansat de către America On-Line în 1998, era menit să uşureze comunicarea directă între doua persoane (talk fiind doar pentru sisteme similare UNIX, în principiu). Variante similare de servicii au fost implementate ulterior de Microsoft prin MSN Messenger în 1999 şi Yahoo!.

Procesarea documentelor pe Internet – ideea aparţine Microsoft care în 1998 afirma că are de gând să pună la dispoziţia utilizatorilor diferite funcţii de prelucrare a documentelor Office prin intermediul Internet-ului. Se pare că atunci, infrastructura Internet-ului nu era suficient de bine dezvoltată, în alte cuvinte, accesul la Internet era încă limitat. După cum se poate vedea, Google nu au fost primii cu acestă idee.

Partajarea fişierelor – File Transfer Protocol, sau FTP, a fost proiectat în anii 70 pentru transferarea de fişiere între calculatoare. O extindere cunoscută a fost Napster, primul program considerat peer to peer, care în 1999 permitea partajarea fişierelor şi, spre deosebire de FTP, căutarea lor între utilizatorii programului. Ulterior au apărut diverse clone, unele legale altele nu, cum ar fi Morpheus, LimeWire, Kazaa, NMDC (DC++, ADC mai nou), BitTorrent  etc.

Servicii Web – adică funcţii puse la dispoziţie de diverse servere programatorilor. În esenţă, sunt nişte pagini de Internet normale, care se bazează pe acelaşi protocol (HTTP), doar că rezultatul este în format XML şi este interpretat de o funcţie, şi nu de un program de navigare. Nimic nou. Mult mult, acestă variantă de Remote Procedure Call (RPC) nu este prea eficientă, fiind interschimbate foarte multe date redundante între server şi client (din cauza modului de funcţionare al protocolui HTTP).

Mai sunt şi alte exemple de acest gen, dar cred că acestea sunt suficiente. Aşadar, toate serviciile noi ale Web 2.0 sunt de fapt doar nişte interfeţe utilizator, menite să uşureze accesul utilizatorilor. Nu sunt tehnologii noi. Singurul serviciu care iese puţin din acest tipar este BitTorrent. Spre deosebire de implementarile clasice ale partajării de fişiere, acesta este implementat distribuit. Toate serviciile noi sunt însă din anii 90, deci nu sunt prea noi.

În ceea ce priveşte tehnologiile noi, este incredibil cât a stagnat lumea soft-ului. Avem tehnologii ca AJAX, CSS, XHTML, XML, MySQL. Tehnologii noi nouţe… Da? Nu chiar…

AJAXAsynchronous Javascript And XML, este o facilitate JavaScript prin care este posibilă comunicarea cu serverul, fără a fi necesară reîmprospătarea paginii (refresh). Facilitatea a fost implementată pentru prima dată în Internet Explorer 4 şi Netscape Navigator 4. Ce-i drept, sub alt nume, mai puţin comercial. Nimeni nu ştia la ce s-o folosească. Vorbim aici de anii 1997, 1998.

XHTML – Extended HTML, pur şi simplu o extensie relativ inutilă a limbajului HTML 4.1. De ce să fie standard HTML, când poate fi XML. Extrem de multe probleme provin de aici. Au fost introduse multe idei din formatul XML, idei de genu orice marcaj deschis trebuie şi închis (<br> devine <br/>, deoarece <br> … </br> nu avea sens). Oricum, HTML există din 1990, iar XHTML nu aduce aproape nici un marcaj nou.

CSS – Modele de stiluri. Erau definite deja în HTML 4, adică în 1996. În bună parte, singurele marcaje (instrucţiuni) portabile sunt cele care există de mai bine de zece ani.

XML – Limbajul de marcaje extensibil propus pentru a fi folosit în scopul interschimbării de date de către Microsoft (ei au fost primii care au realizat că poate fi folosit foarte bine pentru interconectarea diverselor programe) la mijlocul anilor 90, atunci criticat de mulţi.

MySQL – sistem de gestiune a bazelor de date, existent de peste zece ani. MySQL este relativ nou, comparat cu Oracle (peste 20 de ani), FoxPro (peste 20 de ani) sau IBM DB 2 (cel mai vechi sistem, peste 30 de ani). Limbajul Sequel (SQL) este mai vechi decât DB 2.

După cum vedeţi, toate sunt tehnologii noi. Toate exista de cel puţin zece ani, şi se bazează pe tehnologii existente anterior. Nimic nou …

Este incredibil cât de puţine ştiu despre uneltele cu care lucrează programatorii PHP. Am auzit nu demult pe cineva zicând eu lucrez doar Web 2.o, adică XHTML, CSS, AJAX … nu mai fac site-uri simple. E trist …

Tot în acest sens, am fost la un curs de programare Web. Am auzit o afirmaţie şocantă: până la XML, sistemele de baze de date nu stocau bine datele, deoarece, în cazul schimbării sistemului de gestiune a bazei de date, datele nu puteau fi recuperate (fiind stocate binar). Confuzie mare! XML este un format foarte bun pentru interschimbare de date (import / export de date) , dar nu este deloc potrivit pentru stocare. Nici un sistem de baze de date NU va stoca informaţiile în XML. Va şti însă să le exporte sau să le importe în acest format.

Din păcate, se pare că industria programării este în regres. Deşi în domeniul dispozitivelor electronice se inovează în fiecare zi, programele se pare ca iau doar altă formă, dar râmân bazate pe aceleaşi idei vechi.

După cum afirma un prieten, Web 2.0 este momentul în care managerii şi-au dat seama că pot câştiga bani de pe urma Internet-ului.

Anunțuri

6 răspunsuri to “Web 2.0 … sau nu?”

  1. vlad Says:

    Sunt parțial de acord cu tine.
    Facultateaâ nu mai reprezintă mare lucru pentru foarte mulți „programatori” mai ales pentru faptul că atunci când s-au înscris la facultate nu știau la ce să se aștepte. Spre surprinderea multor studenți la facultate nu se joacă jocuri pe calculator..
    Cât despre Web 2.0 e un mod de a ne minți pe noi înșine că tehnologia este în un proces de inovare continuă. Așa va fi mult timp de acum încolo pentru că este nevoie de un anumit „buzz” pentru a atrage atenția(și automat numărul de consumatori de web).

  2. Mada Says:

    akuma no offence da se scrie dimpotriva =)))))))

    Alexandru: ba da, am corectat, greseala mea 🙂

  3. Alexandru Says:

    Revin cu o precizare. Am citit de curand o alta definitie a Web 2.0, definitie care se refera la continutul paginilor de Internet. Acesta afirma ca in Web 2.0, continutul paginile de Internet este create de catre utilizator (Hi5, MySpace, Facebook, Yahoo! 360, Orkrut sunt doar cateva exemple).

    Din acest punct de vedere, sunt perfect de accord ca Web-ul a evoluat, si il putem numi 2.0. Totusi acesta definitie nu se refera la tehnologiile folosit, care raman aceelasi, indiferent de tipul de continut.

  4. Lucian Says:

    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.

  5. Alexandru Says:

    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.

  6. Lucian Says:

    Intradevar, graba strica treaba. O sa incerc de data asta sa fiu putin mai detaliat in argumentele pe care le ofer.
    Sunt bucuros ca ti-ai facut temele dar totusi mi se pare ca sar putea mai bine. In primul rand ideea pe care o prezinti despre social software pare putin cam deplasata, nu ma refeream numai la partea de comunicatii(irc, blog,wiki, etc…) ci la conceptul pe care a fost bazat si anume cel de sisteme infrormationale globale. Presupun ca ideea este evidenta si nu cred ca ar avea sens detaliile pe acest capitol.
    Ideea de semantic web se refera la continut web care sa fie perceptibil atat de oameni cat si de masini(calculatoare). Astfel se incearca sa se puna bazele la un sistem de servicii web prin care sa permita sistemelor automatizate sa faca web surfing in tentativa de a rezolva anumite probleme. Are o tendinta sa fie un SOA globalizat axat pe web-services(SOA!=WS) desi intradevar mai este mult pana acolo. Semantic web-ul are ca scop final, consider eu, oferirea unei platforme prin care sa se poata rezolva problema supraincarcarii informationale de pe web prin oferirea posibilitatii masinilor sa caute ce ne intereseaza.
    Acum legat de clustering, ideea este foarte veche intradevar, daca stam putin si ne gandim, practic ideea exista de cand lumea. Toata lumea are tendinta sa grupeze obiectele asemanatoare in categoriile specifice. Pe la inceputurile retelelor neuronale insa, perceptia asupra conceptului a fost modificata, transformandu-se intr-un fel de aplicatie pentru a rezolva problemele matematice. Web 2.0 are nevoie de clustering din punctul de vedere a relevantei informatiei si categorisirea ei, practic este destul de bine legata de ideea de semantic web, si ajuta mult ierarhizarea cuvintelor intr-un mod perceptibil si de calculator. Astfel desi conceptul este foarte vechi modul de aplicare al sau este complet nou si incearca a rezolva o clasa de probleme mult diferita.
    Ajungand si la ,,batranul” SEO, ideea este ca din ce in ce mai multe motoare de cautare acorda o pondere din ce in ce mai mare pentru site-urile care au in fundal XNF-ul implementat, din nou revenind la ideea de mai sus cu semantic web-ul si alte asemenea.
    Din pacate PHP-ul si-a depasit de mult scopul initial, acum este folosit din ce in ce mai mult si mai puternic. Daca este sa ne gandim la versiunile initiale ale PHP-ului ai perfecta dreptate, nu este nici fiabil si nici sigur. Insa daca este sa privim de la versiunea 4.2 in sus, se poate observa ca numai copii ar putea sa fie pacaliti cu un php-injector. Ideea securitatii PHP-ului sa schimbat mult in ultima vreme, primul pas poate fi observat chiar in momentul in care vectorul $_REQUEST(sper sa il fi scris bine) a fost impartit in $_POST si $_GET, ca sa nu mai spunem de session si cookie-uri. Desi din punctul asta de vedere cred ca rpc-ul oferit de alte limbaje este mult mai susceptibil la un atac. Acum imi pare rau sa te dezamagesc dar sa stii ca am 2 aplicatii desktop facute in php, si nu ca vroiam sa ma dau mare ci pur si simplu aveam nevoie de niste metode mult mai bine suportate de PHP(astfel PHP-ul este compilabil, si sintaxa si logica este verificata).
    Legat de Python, nu stiu cum dar si LISP-ul are suport OOP, si pare a fi imperativ, exista chiar si metode prin care se pot injecta astfel de chestii si sub Huskell (JavaScript este cam imperativ pentru a mai face asta). Asta nu le face mai imperative decat sunt.
    XSLT-ul… ce sa mai spun, decat ca daca iti mofifici perspectiva, XML-ul nu este decat o metoda de introducere a datelor, de aici cred ca se intelege ce vreau sa spun.
    Legat de java,.Net si securitatea acestora nici nu vreau sa incep discutia bazata pe cum se crapa o clasa sau un program de .net. Sa fim seriosi reflection este o chestie folosita si la dezvoltarea aplicatiilor si testarea lor, ce sa mai spun de nesimtitii care folosesc aceste metode simple pentru a iti fura codul la care tu ai lucrat cateva zile sau saptamani bune.
    Problema mea cu limbajele foarte inalte este ca sunt, dupa cum ai spus si tu, mult prea axate pe a scoate un program utilizabil si ineficient decat a scoate un program bun. Ca sa nu mai spun ca in momentul in care ai nevoie sa faci pana si cele mai banale chestii, le poti face foarte elegant pentru oameni si extrem de costisitor pentru procesor. De prea multe ori ai nevoie de un tun ca sa omori o musca(cei care stiu si asm cred ca sunt de acoord cu mine).

    Revenind la Web2.0, el este intradevar urmatorul pas de la web-ul cunoscut pana acum cativa ani. In anii ’90 orice tantalau care scria un cod html invalid era considerat un geniu, era saracul de el un adevarat ,,web-master”. Acum lucrurile astea sunt facute de pustani de 10 ani pe Hi5 fara macar ca sa bage de seama ceea ce fac cu adevarat. Marea majoriate a continutului de pe web este acum facuta de utilizatori si nu de profesionisti. Cantitati fenomenale de informatii sunt introduse zilnic, cu si fara cod atasat de oameni care habar nu au ca EXISTA ceva in spate. Si sa nu uitam ca majoritatea utilizatorilor acum nu mai sunt ca pe vremuri, cati din utilizatorii de azi ai internetului ar sta sti sa faca download la o poza care are un div transparent pe deasupra, si cati dintre ei ar verifica sintaxa unui link in momentul in care nu merge. Cati oameni stiu macar ce se afla in spatele unui amarat de text colorat. Tocmai de asta se ajunge la Web 2.0.
    Si ne indreptam spre Web 3.0 care va fi mai mult cel al masinilor decat al oamenilor…….

Lasă un răspuns

Completează mai jos detaliile tale sau dă clic pe un icon pentru a te autentifica:

Logo WordPress.com

Comentezi folosind contul tău WordPress.com. Dezautentificare / Schimbă )

Poză Twitter

Comentezi folosind contul tău Twitter. Dezautentificare / Schimbă )

Fotografie Facebook

Comentezi folosind contul tău Facebook. Dezautentificare / Schimbă )

Fotografie Google+

Comentezi folosind contul tău Google+. Dezautentificare / Schimbă )

Conectare la %s


%d blogeri au apreciat asta: