На обложке
изображен Александр Александрович Степанов (1950), русско-американский
учёный в области информатики и вычислительной техники. Наиболее
известен как создатель библиотеки STL (англ. Standard Template Library),
ставшей частью стандартной библиотеки языка C++.
Александр
Александрович родился 16 ноября 1950 года в Москве. С 1967 по 1972 год
изучал математику на механико-математическом факультете Московского
государственного университета (с перерывом на службу в армии). В 1973 году
он получил диплом учителя математики в Московском областном педагогическом
институте имени Крупской. С 1972 по 1976 Александр Степанов год работал
в Институте проблем управления и Центральном институте комплексной
автоматизации. В команде программистов под руководством Александра Гуревича
участвовал в разработке мини-компьютера для управления
гидроэлектростанциями, занимался разработкой аппаратуры, операционных систем,
отладчиков. Первая опубликованная Степанова работа относится к этому
периоду. Она была посвящена операционным системам реального времени. В это
же время (по его словам, в 1976 году) у него появились идеи, связанные
с обобщённым программированием, которые через 15 лет вылились в разработку
библиотеки STL.
В одном из
интервью Александр Степанов рассказал: «Моей первой задачей было написать
подпрограммы для помещения байта в буфер и получения байта из буфера.
(Эта машина не имела адресования байтов.) К сожалению, я не знал, что
такое байт и что такое буфер, и стеснялся спросить. Я заметил, что
другие программисты очень мучились, отлаживая программы с операторского
пульта. Я решил написать программу, которая бы выполняла другую программу
и по ходу распечатывала бы инструкции и их результаты. Когда я ее
написал, мой друг Коля Гурин объяснил мне, что это называется «отладчик». После
этого я стал главным и единственным системным программистом.
Остальные программисты были инженерами-энергетиками и писали программы для
контроля электростанций».
В 1977 году
Александр Степанов эмигрировал в США. Свою зарубежную карьеру
ученого-программиста Степанов начал в исследовательском центре компании
General Electric в Скенектади, штат Нью-Йорк. В это время он вместе с
соратником во многих последующих проектах Дэвидом Мюссером работал над языком
программирования Tecton.
В 1983 году
Степанов стал доцентом в Политехническом университете Бруклина. Там
совместно с Дэвидом Мюссером и Ароном Кершенбаумом, была в итоге
создана большая библиотека компонентов на Scheme (диалект Lisp).
В 1985 году
Степанов был вновь приглашён в GE Research для преподавания курса
высокоуровневого программирования.
В 1987 году ученый
получил предложение о работе в Bell Laboratories, чтобы реализовать
свой подход в виде библиотеки на языке C++. Однако стандарт языка в это
время ещё не позволял в полном объёме осуществить задуманное.
В 1988 году Александр
Александрович начал работать в HP Labs, где первоначально работал над
вещами, не связанными с обобщённым программированием: системами хранения
данных, дисковыми контроллерами. В 1992 году Степанов вернулся к работе
над алгоритмами, в конце 1993 года рассказал о своих идеях Энди
Кёнигу, который, высоко оценив их, организовал ему встречу с членами
Комитета ANSI/ISO по стандарту C++. Уже весной 1994 года библиотека STL,
разработанная Степановым, стала частью официального стандарта языка C++.
С 1995 года до
начала третьего тысячелетия Александр Александрович успел поработать в таких
компаниях, как SGI, AT&T Laboratories и Compaq, где стал
вице-президентом.
С ноября 2002 года
до ноября 2009 года он преподавал программирование в компании Adobe.
С ноября 2009 года
Александр Степанов работал в A9.com — дочернем предприятии компании
Amazon. В 2016 году ученый вышел на пенсию.
Своим наибольшим
достижением Александр Александрович считает появление самой концепции
обобщённого программирования, целью которого является возможность написания
алгоритмов очень высокого уровня абстракции, которые при этом будут так же
эффективны, как и код, написанный специально для конкретного случая
использования. Достигается это разбиением программ на особым образом
классифицированные и организованные элементы. Воплощением этой идеи
в жизнь является STL.
Александр Степанов
написал несколько работ по робототехнике, системам хранения данных. Он известен
также как автор так называемого теста Степанова, оценивающего качество
компиляторов.