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.
|