Un experiment .web / Editarea pe Web a codului-sursă (episod-pilot)

După un an de la finalizarea unui proiect de jurnalism academic, am decis să realizăm un nou experiment pe care-l vom intitula .web, focalizându-ne atenția asupra unor aspecte – credem – de interes privind tehnologiile Web și alte domenii ale informaticii (computer science).

Astfel, ne propunem ca săptămânal să „punem pe tapet” un anumit subiect referitor la dezvoltarea de aplicații Web și nu numai. Primul „calup” al acestui serial va cuprinde 52 de episoade, pentru fiecare săptămână a anului 2013.

…Așadar, această însemnare poate fi considerată ca fiind episodul-pilot. Tema articolului de față poate părea pentru unii frivolă (e totuși vacanță) – editarea online a codului-sursă al diverselor programe, documente și specificații care „animă” o aplicație Web.

Reamintim faptul că arhitectura generică a unei aplicații Web vizează atât partea de server, cât și cea de client – a se vedea figura de mai jos, extrasă din una dintre cărțile noastre scrise acum câțiva ani și reprodusă în prima prezentare a cursului Tehnologii Web predat la Facultatea de Informatică, UAIC Iași.

Arhitectura generică a unei aplicații Web

Arhitectura generică a unei aplicații Web

Grosier, a crea o aplicație Web înseamnă a lua în considerație:

  • interfața – răspunzătoare cu prezentarea conținutului și interacțiunea cu utilizatorul, uzual e realizată pe baza unei suite de tehnologii binecunoscute și, totuși, mereu spinoase: HTML (HyperText Markup Language), CSS (Cascading Style Sheets), Ajax, SVG (Scalable Vector Graphics), eventual Flash ori Silverlight;
  • datele – modelate, interogate și stocate conform unei paradigme: relaționale (e.g., gestionate pe baza limbajului declarativ SQL – Structured Query Language), arborescente (de exemplu, XML – Extensible Markup Language), folosind grafuri („la modă” fiind NoSQL) etc.;
  • procesarea – conform unor programe implementând diverși algoritmi, programe ce pot rula la nivel de server – limbajele de programare populare fiind C#, Java, JavaScript (prin Node.js, de pildă), PHP, Python, Ruby etc. – și/sau la nivel de client – JavaScript.

Realitatea arată că toate cele 3 „compartimente” (interfața, datele, procesarea) sunt la fel de importante pentru a asigura succesul unei aplicații Web.

Bun, ce editoare sau medii de dezvoltare ar fi potrivite pentru a scrie atâtea linii de cod – la urma urmei, e vorba de numeroase fișiere text?

Avansații masochiști ar putea recomanda „fioroasele” Emacs sau Vim – nu le contestăm calitățile, însă asemenea „dinozauri” au apărut în alt secol, în pre-Internet (câți dintre cititori s-au născut înainte de 1981, anul lansării primei versiuni Emacs?) și nu iau în considerație decât în mică măsură contextul și așteptările utilizatorilor actuali.

Vom menționa o serie de aplicații Web care pot fi folosite, mai ales de către începători și de către utilizatorii intermediari care au la îndemână platforme multiple și vor să creeze (imagineze, programeze,…) de plăcere. Informatica trebuie să fie un hobby și nu o plictisitoare obligație (deseori, se uită sau nici nu se menționează așa ceva în școală, oricare ar fi ea) – tangențial, a se parcurge eseul Learnable Programming de Bret Victor și articolul A History of Live Programming.

Iată câteva soluții de editare în „nori” (datele și aplicațiile sunt memorate și rulează într-un așa-numit cloud fără ca pe utilizator să-l intereseze câte calculatoare și sisteme de stocare sunt exploatate efectiv), oferind familiara interfață Web pentru…:

  • designul și programarea Web la nivel de client (HTML, CSS și JavaScript): Mozilla Thimble, JS Bin și jsFiddle;
  • programarea Web folosind PHP: PhpFiddle – eventual, pentru a învăța limbajul de interogare SQL asupra diverselor sisteme de baze de date relaționale (MySQL, PostgreSQL, Oracle, MS SQL), se poate vizita SQL Fiddle;
  • dezvoltare de aplicații ASP.NET în stilul Visual Studio: CodeRun;
  • testarea diverselor API-uri Google ce pot fi invocate asincron via Ajax: Google Code Playground;
  • programare în general, oferind suport pentru C, C++, C#, Java, Python, Ruby, Visual Basic și altele: Compilr (util mai ales pentru elevi, studenți și alte categorii de novici);
  • dezvoltatorii mai experimentați: Cloud9 IDE și Exo IDE;
  • experimente de grafică 3D pentru Web, adică WebGL: WebGL Playground.

La final, indicăm o serie de situri Web ce pun la dispoziție numeroase resurse vizând dezvoltarea de aplicații Web: OntWik, Speaker Deck și VideoLectures.

Anunțuri