​Povestea relatiei mele cu programarea incepe cu ceva vreme in urma. Mai exact, prin vara lui ‘98, cand am avut prima slujba de programator. Intrasem la facultate, trecusem de primul an si… aveam nevoie de o ocupatie.

Era pe vremea cand programarea Web abia se inventa. PHP, ASP-ul de la Microsoft (cel vechi, nu acesta nou si fancy, pe baza de CLR), Java abia aparusera. Server-side-ul era C sau C++.

Dupa cateva incercari cu PHP, C si C++, am decis sa raman la Java. Uitandu-ma retrospectiv, motivul a fost legat de acea dorinta fundamentala si nestavilita din sufletul oricarui programator de a construi lucruri stralucitoare si complicate. Pe de alta parte, oamenii construiau catedrale cu mult inainte de a se descoperi programarea. Banui ca aceasta aspiratie nu este specifica breslei noastre.

Java imi oferea aproape aceeasi putere si expresivitate ca si C++, fara bataile de cap ale celui din urma. Java, ca si limbaj, a reusit sa nimereasca balanta aproape perfecta intre flexibilitate si convenienta, putere si simplitate.

Am ramas in ecosistemul Java pentru ca lucruri exceptionale si surprinzatoare au continuat sa se intample in acest spatiu: performanta de top sub tutela GC; o adoptie excelent integrata a conceptelor de programare functionala, si altele.

Ultimul eveniment major care a avut loc este „ascensiunea” JVM-ului ca si tehnologie de sine statatoare. Evolutia a fost discreta si multi nu au sesizat-o. Insa JVM-ul a iesit incet-incet de sub tutela limbajului Java si a devenit o tehnologie independenta. Acum ruleaza mai multe limbaje de programare, inclusiv simultan; ofera abilitati precum „invokedynamic” etc. Din multe puncte de vedere, JVM-ul a evoluat mai repede si mai departe chiar si decat limbajul Java.

Cealalta calitate esentiala a Java este bogatia si varietatea ecosistemului de librarii si unelte ce a luat nastere in jurul limbajului. Un ecosistem bogat a ajutat foarte mult cu toate activitatile conexe dezvoltarii de software – testing & quality management, release management, continuous integration, code metrics etc.

Ceea ce ma aduce la conceptul de „software engineering” dinDeutsche Bank– concept mult diferit de „software development”. Foarte multe companii fac „dezvoltare de soft” sau „programare”. Din pacate, este o diferenta fundamentala intre o „bucata de cod” si un „software product”. Centrul global de tehnologie al Deutsche Bank din Bucuresti este unul dintre locurile in care se face software engineering „ca la carte” – gasesti aici infrastructura, uneltele si organizatia necesare in acest scop.

Mai mult, compania incurajeaza activitatile de coaching si mentoring, dinspre seniori spre colegii mai tineri, inclusiv prin programe formale de dezvoltare profesionala, cum ar fi noul proiect „Java School”, adresat studenților aflați în ultimul an de studiu și masteranzilor facultăților cu profil IT&C.

Ioan Barbulescu este Sub-domain Lead RAI in cadrulDB Global Technology.