
An Interview with A. Stepanov (2001) - mpiedrav
http://www.stlport.org/resources/StepanovUSA.html
======
mpiedrav
_Question:

What is the origin of STL? Has STL been conceived to be what it is now, that
is "the" C++ Standard Library, or does it come from some other project? Could
you tell us a history of STL?

Answer:

In 1976, still back in the USSR, I got a very serious case of food poisoning
from eating raw fish. While in the hospital, in the state of delirium, I
suddenly realized that the ability to add numbers in parallel depends on the
fact that addition is associative. (So, putting it simply, STL is the result
of a bacterial infection.) In other words, I realized that a parallel
reduction algorithm is associated with a semigroup structure type. That is the
fundamental point: algorithms are defined on algebraic structures. It took me
another couple of years to realize that you have to extend the notion of
structure by adding complexity requirements to regular axioms. And than it
took 15 years to make it work. (I am still not sure that I have been
successful in getting the point across to anybody outside the small circle of
my friends.) I believe that iterator theories are as central to Computer
Science as theories of rings or Banach spaces are central to Mathematics.
Every time I would look at an algorithm I would try to find a structure on
which it is defined. So what I wanted to do was to describe algorithms
generically. That's what I like to do. I can spend a month working on a well
known algorithm trying to find its generic representation. So far, I have been
singularly unsuccessful in explaining to people that this is an important
activity. But, somehow, the result of the activity - STL - became quite
successful._

