Let's Do It Romania - 24 Septembrie 2011



   

De la început, mereu...

   

Mircea Sârbu


Zilele trecute, un buletin informativ prin e-mail mi-a adus marea veste: a apărut Zope 3.0.0.! Desigur, imensa majoritate a cititorilor n-ar simţi nici un fior la o astfel de noutate, dar pentru mine este importantă. Nu doar că Zope este unul dintre produsele pe care le folosesc în mod curent, ci este totodată una dintre pasiunile mele.

Primul lucru pe care l-am făcut a fost o vizită la situl oficial ca să aflu mai multe amănunte, să aflu ce aduce nou şi, desigur, să descarc programul. Şi abia aici a căzut bomba: Zope 3 nu mai este compatibil cu Zope 2. Este un produs cu totul nou, dezvoltat pe parcursul a trei ani în paralel cu versiunile succesive ale lui Zope 2. Ştiam despre acest proiect şi am vizitat din când în când paginile wiki ce-l găzduiau, însă nu mă aşteptam la o astfel de surpriză.

Iată-mă, aşadar, decăzut din postura de expert la cea de învăţăcel buimac, rătăcit prin dedesubturile unei maşinării complexe. Dintr-o dată am realizat că cele mai multe lucruri pe care cu trudă le-am învăţat nu-mi mai folosesc la nimic. Aş putea lucra în continuare cu versiunea precedentă (şi chiar voi fi obligat s-o fac), dar îmi este cu desăvârşire peste putinţă să rezist tentaţiei de a mă delecta cu noua mea jucărie. Până la urmă, face parte din farmecul meseriei: eşti obligat mereu s-o iei de la început.

Am căutat introduceri rapide, tutoriale, ceva care să-mi scurteze drumul. După ce toate încercările mele au eşuat - materialele erau fie prea generale, fie prea particulare - m-am resemnat cu calea firească: am descărcat o carte numită Developer's Handbook şi am început să-i citesc cele 500 de pagini, începând cu prefaţa. După prima sută de pagini sunt capabil să trag câteva concluzii interesante despre Zope 3 în particular şi despre open source în general.

În primul rând, am înţeles că definiţia produsului s-a schimbat. În vreme ce Zope 2 era definit ca un server de aplicaţii web, Zope 3 este un framework pentru dezvoltarea de aplicaţii web. Acest lucru schimbă radical postura proiectantului: dacă până acum eram un utilizator al produsului, lucrând cu uneltele pe care aplicaţia mi le punea la dispoziţie, acum devin un proiectant cu statut egal cu proiectanţii framework-ului, folosind exact aceleaşi unelte ca şi ei.

Această schimbare de perspectivă a impus un refactoring total. Ruperea compatibilităţii înapoi a fost o decizie curajoasă, dar care este un mare pas înainte şi reprezintă o carte pe care lumea open source are mai mari şase să o joace. Uneori, abordările inovatoare impun astfel de decizii radicale şi chiar riscante.

În lumea comercială, Apple a fost campioana riscurilor de acest gen. A trecut pe un procesor RISC, făcând brusc desuete milioanele de maşini echipate cu procesoare Motorola. A adoptat interfeţe USB, obligându-şi clienţii să-şi schimbe întreaga periferie. A dezvoltat în regim open source nucleul unui sistem de operare revoluţionar, bazat pe Mach 3.0 şi Unix BSD... De fiecare dată s-a lovit de numeroase probleme, dar până la urmă s-a dovedit că a avut dreptate.

O altă concluzie din întâlnirea cu Zope 3 a fost că experimentul face parte din pregătirea profesională firească în domeniul software. Ceea ce astăzi pare excentric sau avangardist, mâine va fi poate norma. Dacă nu aş fi dedicat câţiva ani unei alte pasiuni - sistemul Oberon - mi-ar fi fost cu siguranţă mult mai greu să înţeleg cum funcţionează un framework bazat pe componente. Dacă nu m-aş fi încăpăţânat să scriu câteva aplicaţii în Smalltalk, n-aş fi ajuns la cărţile despre tipare software (patterns) şi aş fi fost pierdut în faţa unor noţiuni precum adapter, factory sau proxy...

În fine, Zope 3 demonstrează o dată în plus că lumea open source s-a maturizat. Cine-şi mai imaginează că dezvoltarea în regim open source este dezordonată şi se bazează doar pe entuziasmul unor novici este în plină eroare. Zope 3 a fost dezvoltat folosind metodologii clare, elaborate anume pentru acest proiect şi bazate pe tehnicile eXtreme Programming. Nimic nu s-a făcut la întâmplare iar multitudinea de documente dedicate procesului de dezvoltare - începând de la guidelines de ordin general şi până la convenţii de formare a identificatorilor sau metodologiile de testare - poate servi drept dovadă.


 

(Publicat în PC Magazine - decembrie 2004)

 

Copyright © 2004 Agora Media

Creative Commons License
This work is licensed under a Creative Commons License.