Введение

Российский американский программист (род. 1950)

Александр Александрович Степанов (Алекса́ндр Алекса́ндрович Степа́нов; род. 16 ноября 1950, Москва) — российский американский программист, наиболее известный как сторонник обобщённого программирования и как основной разработчик и реализатор библиотеки стандартных шаблонов C++, разработку которой он начал около 1992 года, работая в HP Labs. Ранее он работал в Bell Labs вместе с Эндрю Кенигом и пытался убедить Бьярна Строструпа внедрить в C++ нечто подобное обобщённому программированию в Ada. Ему принадлежит идея концепций. Он является автором (в соавторстве с Полом МакДжонсом) книги «Элементы программирования», которая выросла из курса «Основы программирования», который Степанов преподавал в Adobe Systems (во время работы в компании). Он также является автором (в соавторстве с Дэниелом Э. Роузом) книги «От математики к обобщённому программированию». В январе 2016 года он вышел на пенсию из A9.com.

Библиотека стандартных шаблонов и общее программирование

Александр Степанов — сторонник обобщённого программирования. Хотя Дэвид Муссер уже разработал и продвигал некоторые аспекты обобщённого программирования к 1971 году, это было ограничено довольно узкой областью разработки программного обеспечения (компьютерная алгебра). Степанов осознал весь потенциал обобщённого программирования и убедил своих коллег в General Electric Research and Development (включая, прежде всего, Дэвида Муссера и Дипака Капура), что обобщённое программирование следует рассматривать как всеобъемлющую основу для разработки программного обеспечения. В то время ни один язык программирования не обеспечивал реальной поддержки обобщённого программирования. Первым крупным языком, предоставившим такую поддержку, стал Ada с его механизмом обобщённых модулей. К 1987 году Степанов и Муссер разработали и опубликовали библиотеку Ada для обработки списков, которая воплощала результаты большей части их исследований в области обобщённого программирования. Однако Ada не получила широкого распространения за пределами оборонной промышленности, и C++ казался более перспективным в плане широкого использования и обеспечения хорошей поддержки обобщённого программирования, несмотря на относительную незрелость языка. Ещё одной причиной обращения к C++, которую Степанов заметил в самом начале, было то, что модель вычислений C/C++ (обеспечивающая очень гибкий доступ к памяти через указатели) имеет решающее значение для достижения обобщённости без потери производительности. В конечном итоге это привело к созданию Стандартной библиотеки шаблонов C++.