Александр Степанов (Alexander Stepanov) ответил на вопросы пользователей slashdot.org.
– Александр Степанов, у меня не было шанса спросить такого же компетентного человека, как вы по этой теме. Я вырос по ту сторону железного занавеса и меня всегда интересовало, были ли (безусловно, должны были быть) альтернативные вычислительные решения, разработанные в СССР до Elbrus и SPARC.
– Я не уверен, что обладаю какими-либо уникальными знаниями, могу поделиться лишь собственным опытом. Первым моим компьютером был мэйнфрейм М-20 (или один из его производных). Мне потребовалось две попытки, чтобы сдать мой первый экзамен по программированию. Я понятия не имел, как писать код. Я не посещал лекции, не сидел в лабораториях, и думал, что могу просто почитать книгу и пройти тест. Но в программировании это не так; единственный способ изучить его, писать программы.
Позже на своей первой работе, участвовал в разработке мини-компьютера ТА-100 для управления ГЭС. Я был одним из ключевых дизайнеров операционной системы реального времени, разработчиком набора команд и ведущим дизайнером инструментов программирования (отладчик, транслятор, компоновщик, и т. д.). Все это написано на языке ассемблер.
Я начал на очень низком уровне – коммутаторы и инструкции, и это по-прежнему полезно в моей работе, даже сегодня. В то время, Советский Союз начал копировать американские проекты, но мне очень повезло, у меня была возможность проектировать что-то оригинальное с нуля. Главный дизайнер TA-100, Александр Гуревич (Aleksandr Gurevich), был великим наставником для меня. Двое моих старших коллег, Илья Нейштадт (Ilya Neistadt) и Наталья Давыдовская (Natalya Davydovskaya), потратили много времени, стараясь научить меня всем тем вещам, которые я не знал.
Несмотря на мой личный опыт (многие детали я забыл), я не эксперт по истории советской вычислительной техники. Но есть хороший сайт, содержащий много статей на английском языке о первых советских компьютерах.
Троичный компьютер “Сетунь” (Setun) был одним из таких отличавшихся подходов. К сожалению о советской вычислительной техники нет такой детализированной информации, которую можно найти во втором томе («Компьютерный зоопарк») книги Computer Architecture Блаау и Брукса, который дает исчерпывающую информацию о западных устройств. В общем, компьютерная история — это важное поле и требует полной отдачи.
Мой друг Пол Макджонс (Paul McJones) проводит невероятную работу, касательно истории языков программирования и других артефактов программного обеспечения. Посмотрите, например, его сайт об истории FORTRAN. (Он также создал сайты о Lisp и ALGOL). К сожалению, нет ничего похожего о советской вычислительной техники.
– Я помню, вы написали, что STL не имеет ничего общего с C++. STL — это фреймворк для обобщенного программирования, и что C++ был выбран для его первой реализации, потому что имел меньше недостатков для этой цели по сравнению с другими коммерческими языками программирования. Это означает, что вы бы хотели разработать язык программирования с нуля. Если да, то как обстоят дела?
– В моих первых опытах построения компонентов архитектуры, я пытался вместе с Дипаком Капур (Deepak Kapur) и Дэйвом Массер (Dave Musser) разработать язык Tecton с нуля.
Tecton был языком высокого уровня, имел концепции, но был непригоден ни для чего практичного. Тогда я реализовал версию библиотеки в Scheme (вместе с Аароном Kerschenbaum и Дэйвом Массер (Dave Musser), а затем еще одну версию на Ada (с Дейвом Массером).
В 1987 году меня приняли в Bell Labs в команду разработчиков библиотеки C++, там я впервые познакомился с C++. Моим наставником по С и С++ был Энди Кениг (Andy Koenig). Он помог мне понять общую логику языка. К сожалению, в то время, C++, не был готов к STL.
Я вернулся к работе над библиотекой в 1993 году в HP Labs, совместно с Мэн Ли (Meng Lee). У C++ только появились шаблоны и мы смогли создать большую универсальную библиотеку шаблонов. По предложению Энди Кенига (Andy Koenig) мы представили ее версию для включения в стандарт языка C ++. Таким образом появилась STL.
После принятия STL стандартом в 1994 году, я начал думать о проектировании минималистического языка программирования, который бы обеспечил более интимный доступ к оборудованию, чем C/C++, и поддержку концепций и обобщенного программирования.
Я надеялся, что кто-то профинансирует это. Я пообщался с несколькими компаниями, предлагая такой дизайн, но интереса не последовало. Старший вице-президент Microsoft Microsoft сказал мне: “Мы не заинтересованы в инновациях в том направлении, которое вы предлагаете”. Их “инновации” шли в направлении C#, пытаясь вытеснить Java. Сейчас ситуация не лучше.
– Каковы ваши хобби?
– На протяжении жизни я постепенно сузил мой фокус и трачу время лишь на вещи, которые, на мой взгляд, являются важными в своей категории. Такие вещи выдержали испытание временем. Перечитываю прочитанные книги, Слушаю музыку, которую слушал прежде много раз и т.д. и т.д. Да, есть шанс, что я упущу появление нового Моцарта или Евклида, но этот шанс, я готов принять
Кроме того, как старый пифагореейц, я смотрю на это, как на часть единства: музыка отражает математику, литературу связана с историей и т.д. Моя работа и моя жизнь неразделимые. Это единство отражено также в книге «От математики к обобщенному программированию» (From Mathematics to Generic Programming), в которой сочетается математика, программирование, история, а порой философия и искусство.
Вот мои любимые:
Литература: греческие и римские классики: Гомер, Платон, Овидий, Сенека; Библия; “современные” романы от Свифта и Стерна до Диккенса и Энтони Троллопа. Математика и научная-классика: Евклид, Эйлер, Гаусс, Пуанкаре. Я до сих пор читаю печатные книги, а не электронные.
Музыка: Бах, Моцарт, Бетховен, Шуберт, Вагнер, Малер. Как правило, слушаю различные интерпретаций одного и того же произведения. Использую CD и SACD и не MP3 или потоковую музыку.
Фильмы и ТВ: Чаплин, братья Маркс, Куросава, Рай Сатьяджит, «Цивилизация» Кеннета Кларка, «Махабхарата» Питера Брука, «Возвращение в Брайдсхед», «Королевская шекспировская компания», «Мегрэ» с Бруно Кремером. Я энтузиаст Blu-Ray. Не использую Netflix или Amazon Instant Video.
Люблю собак, особенно валлийских корги; 1-2 часа в день выгуливаю свою собаку Максвелла. Не ем мясо и не пью молоко. Вот уже 45 лет живу в счастливом браке. Моя жена Хелен – мой самый близкий друг. Мы римские католики, ходим в церковь по воскресеньям и праздникам, пытаемся следовать заповедям. Наши политические взгляды на одной линии со взглядами Папы Франциско: мы верим в экономически справедливое общество.