Alexander Stepanov
Encyclopedia
Alexander Alexandrovich Stepanov (born November 16, 1950 in Moscow
Moscow
Moscow is the capital, the most populous city, and the most populous federal subject of Russia. The city is a major political, economic, cultural, scientific, religious, financial, educational, and transportation centre of Russia and the continent...

) is the primary designer and implementer of the C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

 Standard Template Library
Standard Template Library
The Standard Template Library is a C++ software library which later evolved into the C++ Standard Library. It provides four components called algorithms, containers, functors, and iterators. More specifically, the C++ Standard Library is based on the STL published by SGI. Both include some...

, which he started to develop around 1992 while employed at HP Labs
HP Labs
HP Labs is the exploratory and advanced research group for Hewlett-Packard. The lab has some 600 researchersin seven locations throughout the world....

. He had earlier been working for Bell Labs
Bell Labs
Bell Laboratories is the research and development subsidiary of the French-owned Alcatel-Lucent and previously of the American Telephone & Telegraph Company , half-owned through its Western Electric manufacturing subsidiary.Bell Laboratories operates its...

 close to Andrew Koenig
Andrew Koenig (programmer)
Andrew R. Koenig is a former AT&T and Bell Labs researcher and programmer. He is the author of C Traps and Pitfalls, co-author of Accelerated C++ & Ruminations on C++, and his name is associated with argument-dependent name lookup, also known as "Koenig lookup"...

 and tried to convince Bjarne Stroustrup
Bjarne Stroustrup
Bjarne Stroustrup ; born December 30, 1950 in Århus, Denmark) is a Danish computer scientist, most notable for the creation and the development of the widely used C++ programming language...

 to introduce something like Ada
Ada (programming language)
Ada is a structured, statically typed, imperative, wide-spectrum, and object-oriented high-level computer programming language, extended from Pascal and other languages...

 Generics in C++.

He is the author (with Paul McJones) of Elements of Programming, a book that grew out of a "Foundations of Programming" course that Stepanov taught at Adobe Systems
Adobe Systems
Adobe Systems Incorporated is an American computer software company founded in 1982 and headquartered in San Jose, California, United States...

 (while employed there).

He is currently employed by A9.com
A9.com
A9.com is a subsidiary of Amazon.com based in Palo Alto, California that develops search engine technology. A9 currently has over 100 employees in its Palo Alto, Bangalore, and Dublin offices.A9 has worked in 3 areas over the years....

.

Standard Template Library and generic programming

Alexander Stepanov is an advocate of what is known as generic programming
Generic programming
In a broad definition, generic programming is a style of computer programming in which algorithms are written in terms of to-be-specified-later types that are then instantiated when needed for specific types provided as parameters...

. Although David Musser
David Musser
David Musser is a professor of computer science at the Rensselaer Polytechnic Institute in Troy, New York, U.S.He is known for his work in generic programming, particularly as applied to C++. His research with Alexander Stepanov led to the creation of the C++ Standard Template Library...

 had developed and advocated some aspects of generic programming already by 1971, it was limited to a rather specialized area of software development (computer algebra).

Stepanov recognized the full potential for generic programming and persuaded his then-colleagues at General Electric Research and Development
GE Global Research
GE Global Research is the research and development division of General Electric.GE Global Research's primary facility is located in Niskayuna, New York. The Advanced Manufacturing and Software Technology Center is a satelite facility located in Van Buren, Michigan...

 (including, primarily, David Musser
David Musser
David Musser is a professor of computer science at the Rensselaer Polytechnic Institute in Troy, New York, U.S.He is known for his work in generic programming, particularly as applied to C++. His research with Alexander Stepanov led to the creation of the C++ Standard Template Library...

 and Deepak Kapur) that generic programming should be pursued as a comprehensive basis for software development. At the time there was no real support in any programming language for generic programming.

The first major language to provide such support was Ada, with its generic units feature. By 1987 Stepanov and Musser had developed and published an Ada library for list processing that embodied the results of much of their research on generic programming. However, Ada had not achieved much acceptance outside the defense industry
Defense industry
The defense industry, also called the military industry, comprises government and commercial industry involved in research, development, production, and service of military materiel, equipment and facilities...

 and C++ seemed more likely to become widely used and provide good support for generic programming even though the language was relatively immature. Another reason for turning to C++, which Stepanov recognized early on, was the C/C++ model of computation which allows very flexible access to storage via pointers is crucial to achieving generality without losing efficiency
Algorithmic efficiency
In computer science, efficiency is used to describe properties of an algorithm relating to how much of various types of resources it consumes. Algorithmic efficiency can be thought of as analogous to engineering productivity for a repeating or continuous process, where the goal is to reduce...

.
It eventually led to the development of the Standard Template Library
Standard Template Library
The Standard Template Library is a C++ software library which later evolved into the C++ Standard Library. It provides four components called algorithms, containers, functors, and iterators. More specifically, the C++ Standard Library is based on the STL published by SGI. Both include some...

 of C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

.

Criticism of OOP

In several interviews, Stepanov has voiced strong criticisms of OOP
Object-oriented programming
Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...

:
  • "I think that object orientedness is almost as much of a hoax as Artificial Intelligence..."
  • "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."

External links


  • Another interview, from Dr. Dobbs
    Dr. Dobb's Journal
    Dr. Dobb's Journal was a monthly journal published in the United States by CMP Technology. It covered topics aimed at computer programmers. DDJ was the first regular periodical focused on microcomputer software, rather than hardware. It later became a monthly section within the periodical...

    , March 1995
  • Range Partition Adapters A STL-based multi-threaded library, inspired from an article of Alexander Stepanov.
  • An interview, by Andrew Binstock, with Alexander Stepanov and Paul McJones on Elements of Programming.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK