Comentarii și interviuri - PC Magazine Romania, Ianuarie
2004
A existat
o vreme în care copiii erau pasionați de locomotive și vapoare, mai târziu
au fost pasionați de mașini, avioane și nave cosmice.
|
Irina Athanasiu
Profesor la Facultatea de Automatică și Calculatoare, Universitatea "Politehnica" București.
Ce înseamnă să fii programator?
Cu mai mulți ani în urmă să fii programator bun însemna să scrii programe care
funcționează utilizând trucuri care reduc timpul de execuție și micșorează spațiul
de memorie utilizat. Timpul programatorilor era ieftin iar resursele de calcul
scumpe. Era vremea când algoritmii de sortare erau încă subiect de comunicări
științifice iar învățăceii în ale programării aflau cum să scoată expresiile
constante în afara ciclurilor, cum să reutilizeze spațiul ocupat de variabile
etc. Limbajul C utiliza cuvântul cheie register, indicând compilatorului să
mențină variabila respectivă într-un registru pentru a reduce timpul de execuție.
În aceeași perioadă instrumentul principal pentru testarea și depanarea programelor
era instrucțiunea printf iar limbajul de asamblare era frecvent utilizat pentru
îmbunătățirea performanțelor programelor. Inventivitatea era poate cea mai importantă
calitate a unui programator. Erau multe de făcut cu resurse puține. Programarea
era o activitate undeva la limita dintre artă și meșteșug. Programatorii formau
o castă cu un număr mic de membri. Existau job-uri suficiente pentru ei dar
nu în exces. Nu existau preocupări pentru dezvoltarea unor instrumente care
să îmbunătățească productivitatea programatorilor sau să le facă munca mai ușoară
(job security). Cine să aibă nevoie de ele, cine să plătească pentru ele?
În timp, pe bază de cerere și ofertă, pentru că utilizarea tehnicii de calcul
a ajuns să se extindă mult și mai ales foarte rapid a crescut costul timpului
programatorilor. Și asta în timp ce costul resurselor de calcul a scăzut. Soluția
- industrializarea procesului de scriere a programelor devenind rentabilă utilizarea
de programe pentru crearea programelor. Nu se mai caută expresii constante pentru
a le scoate în afara ciclurilor, se caută elemente comune unor aplicații dintr-o
clasă pe baza cărora se construiesc aplicații generice configurabile pentru
situațiile particulare. Au apărut termeni noi - portabilitate, compatibilitate,
interoperabilitate, standardizare. Apariția web-ului a accelerat acest proces.
Prea mulți meșteșugari ar fi trebuit să reinventeze iar și iar aceeași roată
care să se potrivească peste tot.
Și așa s-a schimbat definiția unui programator bun. El înțelege diagrame UML,
respectă metodologii, știe să opereze cu medii sofisticate de dezvoltare a programelor,
reutilizează componente, stăpânește, pentru limbajul în care scrie, biblioteci
cu sute de funcții. Are la dispoziție o mulțime de ajutoare: editoare inteligente,
compilatoare care optimizează codul în funcție de arhitectura procesorului pentru
care generează cod, generatoare de programe, profilatoare de programe, depanatoare,
validatoare etc. Nu prea mai este un dezvoltator de algoritmi, este mai mult
un combinator. Disciplina și memoria devin mai importante decât inventivitatea.
Numărul celor care au ocazia să "inventeze" ceva este relativ mic.
Unii rezolvă probleme cu nume noi ca: scalabilitate, stabilitate, fiabilitate,
securitate etc. Și se numesc arhitecți nu programatori. Alții se ocupă de ceea
ce ține de industrializarea activității de programare. Și se numesc creatori
de tehnologii. Și mai sunt și alții care inventează aplicații noi sau caută
domenii în care tehnica de calcul nu a ajuns. Și se numesc specialiști în marketing.
De multe ori programare înseamnă configurarea de aplicații, interfațarea unor
aplicații, operații de tip "completare de formulare". Doar existența
sistemelor embedded și a altor sisteme caracterizate de resurse limitate față
de imaginația celor care inventează aplicații noi, mai conservă necesitatea
unor programe scrise linie cu linie și nu asamblate din alte programe. Numărul
celor care lucrează în acest domeniu este încă mic. Dacă o să fie nevoie de
mai mulți o să crească întâi eficiența dezvoltatorilor de aplicații. De exemplu
prin perfecționarea instrumentelor cu ajutorul cărora se dezvoltă programe pentru
astfel de sisteme.
Programarea a devenit o meserie ca oricare alta, se învață, se practică, nu
necesită calități intelectuale deosebite.
Ar fi interesant de știut care o să fie definiția unui programator bun peste
zece ani? La ce să se aștepte un absolvent care acum se pregătește pentru această
meserie? Dar cineva care nu se pensionează în zece ani? Va însemna activitatea
de programare mai mult decât crearea semiautomată a unor fișiere de configurare?
Cum ne salvăm de plictiseală?
A existat o vreme în care copiii erau pasionați de locomotive și vapoare, mai
târziu au fost pasionați de mașini, avioane și nave cosmice acum par toți să
fie pasionați de calculatoare (cel puțin așa spun părinții). Trece și asta.
O să urmeze altceva. Misterios și dificil.
|