Andrei Alexandrescu este un nume recunoscut mondial în programare, nu numai datorită limbajului D, pe care l-a coinventat împreună cu Walter Bright, ci şi datorită contribuţiei lui în domeniul programării C++ (scriind şi două cărţi numite "Modern C++ Design" şi " C++ Coding Standards: 101 Rules, Guidelines, and Best Practices" - cei interesaţi le pot găsi pe Amazon).
 
Absolvent al Politehnicii bucureştene (1994), a emigrat în SUA în 1998 lucrând pentru diferite companii IT şi din domeniul bancar, ajungând să urmeze un doctorat la Universitatea Washington din Seattle. 
 
  
În 2001 şi 2004 Andrei a publicat două cărţi care au adus gândirea modernă în programarea C++ (care este un limbaj de programare mai vechi, dar cu utilizare largă în sisteme care necesită viteză, scalabilitate şi robusteţe). 
  
 Începând cu 2006, împreună cu Walter Bright, a contribuit la inventarea şi consolidarea unui nou limbaj de programare numit "D", limbaj pe care prestigioasa revistă Wired îl numeşte "The Next Big Programming Language You Ha€™ve Never Heard Of" (următorul mare limbaj de programare de care încă nu aţi auzit). Din 2009 este cercetător ştiinţific la gigantul american Facebook, unde are mână liberă în a experimenta cu acest nou limbaj de programare în reconstruirea backend-ului (sistemelor din spatele cortinei) lui Facebook. 
 
Pentru că Andrei este acum în România (şi va fi prezent la Adevărul Live săptămâna această) am reuşit să-i iau un scurt interviu. 
 
El participă chiar astăzi, 4 noiembrie, la evenimentul susţinut de organizaţia „Girls în Tech", filiala România la TechHub Bucureşti (TechHub este unul dintre cele mai recunoscute spaţii de co-working şi incubatoare de tehnologie din Bucureşti, fiind amplasat pe Strada Nicolae Filipescu). 
  
Andrei va prezenta limbajul de programare D şi va iniţia participanţii în el.
 
Evenimentul "The D Programming Language: Getting Started" va începe la ora 4 PM şi se va încheia la 10 PM, participarea fiind gratuită. 

 

 

Cum ai început în programare? Unde? Când? Ce contribuţie a avut facultatea la formarea ta? 

  
După standardele de azi am început târziu, abia prin facultate. Am făcut liceul de Informatică dar nu-mi plăcea să programez, preferam surubareala cu electronice. Aşa c-am făcut Electronica; cu toate astea, chiar prin anul 1 mi-am dat seama că prefer software în loc de hardware fiindcă limitările sunt legate mai mult de intelect decât lumea fizică. Cred c-aşa intră microbul la toţi softiştii. 
 
Deci eram student la Electronică şi ziua studiam structura semiconductoarelor, dar serile şi nopţile mergeam la Automatică să lucrez la nişte calculatoare pe care le-aveau acolo. Acuma sunt prăjitoare de pâine cu mai multă putere de calcul, dar pe vremea aia mi se păreau nec plus ultra. 
  
Pentru mine facultatea a fost de mare folos deşi n-am folosit tot ce-am învăţat acolo. Şcoala structurează gândirea şi te învaţă să înveţi, ceea ce e crucial în software engineering. Totuşi cunosc şi pe câţiva care n-au avut nevoie de ajutorul unei educaţii formale. 

 

Lucrezi acum pentru Facebook ca om de ştiinţă şi cercetător. Care a fost traseul tău până la Facebook? 

Lung şi plin de meandre. M-am mutat în SUA în 1998 cu ajutorul şi la recomandarea unui prieten, începând cu New York unde am lucrat la o firmă de consultanţă. După un an m-am mutat la un start-up în Atlanta numit NetZip unde erau mai mulţi români, colegi de facultate. Trece încă un an - deci ajungem în Ianuarie 2000 - şi NetZip e cumpărată de RealNetworks în Seattle (unde m-am mutat). Era timpul de graţie al firmelor dot-com, chiar înainte de crăpau, şi achiziţia a făcut ceva vâlvă. M-am trezit cu o ofertă de 400 de mii de dolari în acţiuni după abia doi ani în America. 
  
Bineînţeles că în câteva luni acţiunile s-au dus pe apa sâmbetei. Mamă, ce supărare a fost! A fost o perioadă dură, mulţi au fost daţi afară literalmente de pe o zi pe alta. Unii imigranţi au trebuit să se întoarcă de unde plecaseră. Norocul meu a fost că eu în tot timpul asta învăţam tot ce-mi cădea în mână. Aveam un program strict - în fiecare zi mai stăteam cel puţin două ore după program să studiez. 
  
Din fericire, această abordare de tocilar a dat roade sub formă de articole şi cărţi (prima a fost „Modern C++ Design" apărută în Februarie 2001). Cam prin vremea aia îmi dădusem seama că m-am cam plafonat aşa că am decis să mă reîntorc la şcoală, de data asta ca doctorand la „University of Washington” în Seattle (unde locuiam lucrând la RealNetworks). Admiterea a fost grea, dar cu puţin noroc am reuşit, după care am petrecut aproape opt ani la universitate.
 
La terminarea doctoratului aveam o carieră complet bizară fiindcă eram băgat în multe lucruri foarte diferite: ceva industrie, trei cărţi de programare, masterat în limbaje de programare şi doctorat în inteligenţă artificială (care mai nou se numeşte „machine learning") şi procesarea limbajului natural. 
 
Mi-a fost greu să găsesc o firmă care să aibă treburi atât de variate de făcut, şi din fericire Facebook s-a potrivit perfect. 

 

Ce faci mai exact la Facebook? 

Am făcut cam de toate: statistici pentru reclame, algoritmi pe graful social, geolocaţie, librării pentru programatori... Am fost cinci ani la Facebook, care e o eternitate în industria asta. Mă gândesc chiar c-am început să mă plafonez şi-acolo şi trebuie o schimbare, dar la Facebook mereu apare ceva nou şi interesant. Acum sunt în echipa de infrastructură pentru ingineri, adică ajut inginerii de la Facebook să lucreze mai eficient. 

 

Cum te-ai implicat în dezvoltarea noului limbaj de programare D? Poţi să ne dai mai multe detalii despre D?  

M-am implicat în D fiindcă aveam nevoie de un limbaj care să exprime anumite idei. Iniţial am vrut să-mi fac propriul meu limbaj, dar eram vecin şi prieten cu Walter Bright (inventatorul şi implementatorul iniţial al limbajului D) şi din vorbă-n vorbă am ajuns noi la concluzia că mai bine ne punem forţele împreună. Asta era prin 2006, şi de atunci până acum inclusiv Walter şi cu mine am avut o colaborare foarte fructuoasă. 
  
D este un limbaj modern, expresiv şi foarte eficient. Este folosit într-un spectru larg de domenii, de la programe de sistem (unde tradiţional se folosesc C şi C++) până la scurte utilitare de scripting, deseori scrise în Python. Principala calitate a limbajului D este combinaţia dintre versatilitate şi viteză; poţi să faci ce vrei în D cu relativă uşurinţă, şi o să meargă şi repede. 
  
Curent D creşte destul de rapid în popularitate, de exemplu descărcările (downloads) zilnice s-au triplat de la începutul anului până acum: cam 1200 pe zi în medie faţă de 300. Totuşi rămâne încă un limbaj de importanţă secundară, deci lucrăm zilele astea la accelerarea creşterii. Judecând după numărul de descărcări avem probabil cam 50 de mii de utilizatori, deci mai e până la un milion :o). Câteva exemple de utilizări notabile se pot vedea la http://wiki.dlang.org/Current_D_Use
  

  

Te implici în scena de startup (şi de IT în general) din România? (în afară evenimentului la care vei fi prezent acum) Dacă da, cum? 

Am fost acum doi ani la conferinţa How to Web organizată de Bogdan Iordache şi am fost impresionat de scena IT/startup din România. Tot acolo am cunoscut pe Andrei Pitiş, un antreprenor IT foarte de succes, cu care am rămas prieten. Mai vin deseori în România (ca şi acum) la diferite evenimente de recrutare pentru Facebook. 
  
Sunt optimist despre viitorul IT în România, dar îi lipseşte o anumită coerentă. România are ingineri foarte buni de IT şi industria locală încă nu poate să-i absoarbă. Mi-aş dori să fie mai mult sprijin de jure (legal/guvernamental) şi de facto (mai puţină birocraţie) pentru IT startups, care ar putea să aducă un progres economic radical în viitorul apropriat. 

 

Ai alte proiecte personale la care lucrezi?  

Sigur, mereu e câte ceva pe birou - proiecte mari şi mici, probleme de investigat, mereu e câte ceva dar până una alta nimic decis. Sper să mă apuc de o nouă carte tehnică în 2015. În orice caz voi continua să lucrez la D; cum am zis, mai e mult loc de crescut. 

 

Ce sfaturi ai da unor tineri care vor să între în domeniul acesta al programării? Sfaturi care pot fi folositoare şi în viitor (ştiind faptul că ITul evoluează repede) 

Exact, ITul evoluează repede din care cauză cred că a fost şi rămâne foarte important "metainvatatul", adică abilitatea de a învaţă repede. Cred că cei mai buni experţi vor fi experţii în a ajunge experţi rapid. De aceea probabil că prima mea sugestie pentru un tânăr e să evite supraspecializarea şi să prefere expunerea la subdomenii variate (n.a.-nu e singurul care are aceasta părere). Matematica este şi o să rămână importantă, în special statistica şi probabilităţi care se folosesc în inteligenţa artificială, deci cu cât mai multă mate cu atât mai bine. 
  

 

Dacă ar fi să reîncepi de la 0, ai alege tot domeniul computerelor, programării? De ce?  

Mai mult ca sigur. Să fii programator în ziua de azi e că şi cum ai câştigat loteria de trei ori. E o meserie de mare actualitate şi de mare viitor. Lucrezi mereu la probleme noi şi interesante pentru care eşti şi plătit generos. Sigur, sunt şi dezavantaje. Probabil că cel mai mare e disconfortul mental - într-o zi tipică de lucru, progamatorul nu lucrează "cu calculatorul", ci lucrează mai mult cu propria minte folosind calculatorul ca un reflector care prin comparaţie e pasiv. Efortul mental permanent este obositor dar captivant şi invită la introvertism, de unde clişeul programatorului asocial. Cu timpul însă nu e greu să înveţi să compartimentezi orele din zi. 

 

Se ştie că programatorii sunt un fel de oracole. Ei ştiu dinainte ce va executa cu codul pe care îl scriu. Ai idee care va fi viaţa ta de acum încolo? Ce plănuieşti pentru viitor? 

Oracole? Asta ştiu precis că nu-i adevărat :o). Viitorul în IT (şi în general) se anunţa interesant, şi sper să fiu şi eu prezent la o mică parte din ce se va întâmpla. 
  
Prezic că vin roboţii puternic, în forme complet neaşteptate. Lumea a râs vreme de decenii de maşină care merge singură, până deodată a început să meargă mai bine decât şoferii umani. Implicaţiile aduse de autovehicolele autonome vor fi enorme şi de durată. Sistemele de dialog vor deveni din ce în ce mai bune - Siri nu e de lepădat dar în numai câţiva ani va părea incredibil de demodată. Tehnologia în general şi inteligenţa artificială în particular pătrund rapid în toate aspectele societăţii. Este clar că asta crează anumite dificultăţi, dar este posibil ca tehnologia superioară, folosită bine, să rezolve câteva din probleme dificile ale omenirii. 
  
Planul meu e simplu - să continui să stau la curent cu ce se întâmplă şi să încerc să contribui cum ştiu mai bine. 

 

Cum e viaţa în America ca imigrant de prima generaţie? Te vei întoarce în Ro? 

Din toate ţările, SUA e cea mai bună pentru imigranţi deoarece ea însăşi n-a uitat că e o ţară de imigranţi. Americanul tipic nu se strâmbă la accentul sau obiceiurile culturale ale nimănui. De asemenea, cumva viaţa în America e uşor să ţi-o faci simplă şi relaxată: ai necesităţile la îndemână, automatizezi tot ce se poate automatiza, şi-ţi rămâne timp să faci ce vrei tu. 
  
Soţiei, copilului şi mie ne place să vizităm România. Locuitul ar fi mai puţin idilic. Eu mi-aş găsi de lucru ceva să-mi placă dar ea e medic şi specializările din SUA nu sunt recunoscute în România. Apoi nu-i uşor să te reobisnuiesti cu lucruri ca omniprezenţa discursului politic şi social (în SUA avem foarte puţin contact cu politica şi cancanurile mondene) sau cu frecuşurile şi micile frustrări zilnice. Dacă s-ar inventa teleportarea, ar fi interesant de locuit în Bucureşti şi lucrat în SUA... 
  
Mai jos Andrei Alexandrescu discută cu Brian Overland de la publicaţia InformIT despre limbajul D.