Andrei Alexandrescu

Ro­man­ian-born Com­puter Sci­en­tist An­drei Alexan­drescu is an ex­pert in a broad range of top­ics in­clud­ing soft­ware sys­tems de­sign and im­ple­men­ta­tion, pro­gram­ming lan­guage de­sign, li­brary de­sign, all as­pects of the C++ and D pro­gram­ming lan­guages, Ma­chine Learn­ing, and Nat­ural Lan­guage Pro­cess­ing. His cre­ative ap­proach to prob­lem solv­ing, broad knowl­edge, and charis­matic pres­ence make An­drei a sought-af­ter in­vited speaker at con­fer­ences world­wide.

An­drei started pub­lish­ing as a con­trib­u­tor to C/C++ Users Jour­nal in 1998, a few months af­ter his ar­rival to the United States. His in­ter­ests grav­i­tated around de­vis­ing sim­ple, flex­i­ble de­sign ar­ti­facts by us­ing the gen­er­a­tive ca­pa­bil­i­ties of tem­plates in the C++ pro­gram­ming lan­guage. Soon there­after, fol­low­ing sem­i­nal dis­cus­sions with Scott Mey­ers and the late John Vlis­sides, An­drei em­barked on writ­ing his first book, Mod­ern C++ De­sign. The book, pub­lished in 2001 by Ad­di­son Wes­ley, coined the term "pol­icy-based de­sign" and be­came a best-seller that rev­o­lu­tion­ized C++ pro­gram­ming and also in­flu­enced other lan­guages and sys­tems. Noted C++ ex­eget Fran­cis Glass­borow wrote in his re­view in ACCU: "I par­tic­u­larly look out for books that ei­ther set a new stan­dard of ex­cel­lence in an ex­ist­ing cat­e­gory or that open up an en­tirely new area. [...] This book is very def­i­nitely in the sec­ond cat­e­gory." To­day, pro­gram­mers col­lo­qui­ally use the term "mod­ern C++" to re­fer to the style pro­moted by the book—light, pre­cise com­po­nents that use the type sys­tem gain­fully to adapt to the us­age con­text and to gen­er­ate spe­cial­ized code.

An­drei's sec­ond book, C++ Cod­ing Stan­dards (Ad­di­son Wes­ley, 2004), writ­ten in co-au­thor­ship with Herb Sut­ter, es­tab­lished it­self as the ul­ti­mate col­lec­tion of guide­lines for writ­ing high-qual­ity, in­dus­trial-soft­ware C++ code. The book won the Jolt Pro­duc­tiv­ity Award at the Soft­ware De­vel­op­ment Con­fer­ence in 2005. C++ Cod­ing Stan­dards has been trans­lated in nu­mer­ous lan­guages.

Dur­ing the 2000s, An­drei's ar­ti­cles have had a marked in­flu­ence in the soft­ware in­dus­try. His Scope­Guard ab­strac­tion, co-au­thored with Petru Mar­gin­ean, has be­come a sta­ple tech­nique in C++ and has also en­joyed adop­tion in Perl, Python, C#, and D (be­com­ing a full-fledged fea­ture in the lat­ter lan­guage). The ar­ti­cle Mojo: Move of Joint Ob­jects has fo­cused C++ com­mu­nity's at­ten­tion on is­sues re­lated to un­nec­es­sary ob­ject copy­ing in C++ and spurred a line of work by David Abra­hams, Howard Hin­nant, and oth­ers, that has ul­ti­mately led to the rvalue ref­er­ences lan­guage fea­ture in C++0x.

The late 2000s wit­nessed a shift of in­ter­est to­wards other fields. An­drei's doc­toral re­search, com­pleted in 2009, is in Ma­chine Learn­ing ap­plied to large-scale tasks in Nat­ural Lan­guage Pro­cess­ing. His doc­toral dis­ser­ta­tion in­cludes one the­o­rem of im­por­tance to scal­ing graph-based meth­ods to large learn­ing tasks, and an orig­i­nal al­go­rithm Dyn­Trie that com­bines dy­namic pro­gram­ming and the trie data struc­ture to the end of op­ti­miz­ing large string sim­i­lar­ity com­pu­ta­tions.

Si­mul­ta­ne­ously with his doc­toral work, An­drei be­came a con­trib­u­tor  to the D pro­gram­ming lan­guage, in which he rec­og­nized a po­ten­tially su­pe­rior ve­hi­cle for fur­ther­ing the ideas pi­o­neered by Mod­ern C++ De­sign. Since 2006 he be­came co-de­signer of the lan­guage to­gether with Wal­ter Bright (the cre­ator and first im­ple­men­tor of the D pro­gram­ming lan­guage) and the main de­signer of D's stan­dard li­brary. An­drei in­tro­duced new lan­guage fea­tures (such as the scope() con­struct and re­stricted generic func­tions) and a host of highly generic im­ple­men­ta­tions of clas­sic al­go­rithms. His li­brary de­sign in­tro­duced the cross-lin­guis­tic con­cept of range, which com­bines the ex­pres­sive­ness of it­er­a­tors as de­fined in C++'s Stan­dard Tem­plate Li­brary with the safety and con­ve­nience of the It­er­a­tor de­sign pat­tern. An­drei's third book The D Pro­gram­ming Lan­guage (Ad­di­son Wes­ley, 2010) is an au­thor­i­ta­tive guide to the lan­guage.

In the re­cent years, var­i­ous con­fer­ences around the world (such as the ACCU con­fer­ence, Boost­con, and DConf) of­fered An­drei the honor of be­ing the keynote speaker. In ad­di­tion, An­drei is of­ten in­vited as guest speaker at nu­mer­ous con­fer­ences and trade events. He is also a  trainer fea­tur­ing tech­nol­ogy com­pa­nies such as Adobe Sys­tems, Ama­zon, Citadel, In­tel, and Mor­gan Stan­ley in his port­fo­lio.

Born in 1969 in Bucharest, An­drei ini­tially pur­sued other in­ter­ests, such as clas­si­cal gui­tar (hon­or­able men­tion in 1986 and 3rd prize in 1987 at the Clas­si­cal Gui­tar Fes­ti­val in Sinaia, Ro­ma­nia) and drum­ming. He be­gan pro­gram­ming as late as col­lege and reg­is­tered his first suc­cess at the "Tra­ian Lalescu" stu­dents' in­for­mat­ics con­test in 1993 as he was pur­su­ing a BSc de­gree in Elec­tri­cal En­gi­neer­ing at Uni­ver­sity "Po­litehnica" Bucharest.  Fol­low­ing his move to the United States in 1998, An­drei worked in the fi­nan­cial and dot-com in­dus­tries, af­ter which he stud­ied at Uni­ver­sity of Wash­ing­ton in Seat­tle be­tween 2001 and 2009, earn­ing a PhD in Com­puter Sci­ence. In 2006 the US Gov­ern­ment granted An­drei the EB1-EA Green Card (re­served to for­eign­ers with out­stand­ing achieve­ments), and since 2014 he is a dual US and Ro­man­ian cit­i­zen. Af­ter a five-year tenure as a Re­search Sci­en­tist at Face­book, An­drei works on the D Pro­gram­ming Lan­guage Foun­da­tion.

 

Feb­ru­ary 2011