Alexander Stepanov

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir Stepanov.
Alexander Stepanov

Alexander Alexandrovich Stepanov (en russe : Александр Александрович Степанов) est un informaticien d'origine soviétique, né à Moscou le , où il a étudié les mathématiques. Spécialiste de la programmation générique, il est le créateur, avec Meng Lee, d'une bibliothèque du langage C++ appelée Standard Template Library. Il a commencé à développer la STL aux environs de 1992 lorsqu'il était employé de HP Labs. Il avait travaillé auparavant aux Laboratoires Bell et avait essayé de convaincre Bjarne Stroustrup d'introduire quelque chose ressemblant aux génériques d'Ada, dans C++.

Il est l'auteur (avec Paul McJones) d’Elements of Programming, un livre qui est issu du cours Foundations of Programming que Stepanov donnait à Adobe Systems lorsqu'il y était employé.

Il est actuellement employé d'A9.com.

La Standard Template Library et la programmation générique[modifier | modifier le code]

Alexander Stepanov est un avocat de ce qui est connu sous le nom de programmation générique. Bien que David Musser ait développé et défendu certains aspects de la programmation générique dès 1971, cela était limité à un domaine relativement spécialisé du développement de logiciels (les systèmes de calcul formel).

Stepanov reconnut le plein potentiel de la programmation générique et persuada ses collègues de l'époque de la recherche et du développement de General Electric (incluant tout spécialement David Musser et Deepak Kapur) que la programmation générique devrait être poursuivie comme une base complète du développement de logiciel. Au même moment, il n'y avait aucun support réel dans les langages de programmation pour la programmation générique.

Le premier langage majeur à fournir un tel support était Ada, avec ses unités génériques. En 1987 Stepanov et Musser avaient développé et publié une librairie Ada pour la gestion de listes qui constituait les résultats de la plupart de leurs recherches en matière de programmation générique. Toutefois, Ada n'avait pas atteint une audience significative en dehors de l'industrie de la défense et C++ semblait plus susceptible d'être utilisé largement et de fournir un bon support à la programmation générique en dépit du fait que le langage était relativement immature. Une autre raison de se tourner vers C++, que Stepanov identifia très tôt, était que le modèle de calcul de C/C++ qui utilise un accès très flexible au stockage par l'intermédiaire de pointeurs est crucial pour atteindre une généralité sans perdre de l'efficacité. Cela mena finalement au développement de la Standard Template Library de C++.

Critique de la programmation orientée objet[modifier | modifier le code]

« I think that object orientedness is almost as much of a hoax as Artificial Intelligence. I have yet to see an interesting piece of code that comes from these OO people. In a sense, I am unfair to AI: I learned a lot of stuff from the MIT AI Lab crowd, they have done some really fundamental work: Bill Gosper's Hakmem is one of the best things for a programmer to read. AI might not have had a serious foundation, but it produced Gosper and Stallman (Emacs), Moses (Macsyma) and Sussman (Scheme, together with Guy Steele). I find OOP technically unsound. It attempts to decompose the world in terms of interfaces that vary on a single type. To deal with the real problems you need multisorted algebras - families of interfaces that span multiple types. I find OOP philosophically unsound. It claims that everything is an object. Even if it is true it is not very interesting - saying that everything is an object is saying nothing at all. I find OOP methodologically wrong. It starts with classes. It is as if mathematicians would start with axioms. You do not start with axioms - you start with proofs. Only when you have found a bunch of related proofs, can you come up with axioms. You end with axioms. The same thing is true in programming: you have to start with interesting algorithms. Only when you understand them well, can you come up with an interface that will let them work. »[1] — Alexander Stepanov

Références[modifier | modifier le code]

  1. http://www.stlport.org/resources/StepanovUSA.html

Liens externes[modifier | modifier le code]