Стил: Так как моим первым языком был Фортран, интересное началось для меня с языка ассемблера для IBM 1130. Первым интересным произведением была программа для генерации контекстных указателей по ключевым словам. IBM делала «быстрые» алфавитные указатели к своим руководствам: ключевое слово можно было найти в алфавитном указателе, а по обе стороны от него располагались и другие слова из того отрывка, где оно встречалось.
Сейбел: Отрывка текста, где было слово?
Стил: Отрывка из собственно руководства. Итак, в средней колонке шли слова по алфавиту, а по бокам от них — слова из этих отрывков. Я подумал, что при помощи IBM 1130 справлюсь с этим. А так как в ее оперативной памяти помещалось только 4000 слов, было ясно, что придется работать с данными на диске. Так что мне пришлось изучить методы сортировки данных вне оперативной памяти. Интересной в этой программе была не столько возможность генерации ключевых слов в контексте, сколько именно эта возможность сортировки слиянием вне оперативной памяти. Программа оказалась более-менее эффективной. К сожалению, в оперативной памяти я использовал пузырьковую сортировку данных. А надо было использовать также сортировку слиянием, но тогда я до этого не додумался.
Сейбел: А сколько времени прошло с того момента, как вы узнали о компьютере в подвале, до написания этой программы? Месяцы? Недели?
Стил: Это случилось в течение первых двух лет. Не уверен, был ли это первый год. Я выучил Фортран осенью 1968-го. И помню, что APL был моим третьим языком, значит, язык ассемблера я освоил на Рождество или чуть позже. Помню, что APL я выучил весной 1969-го, потому что тогда в Бостоне проходила Весенняя объединенная вычислительная конференция.
У IBM там была выставка, посвященная всем их продуктам, прежде всего APL-360, и я бродил вокруг их стенда. По окончании выставки они собирались выбросить демонстрационные распечатки от терминала Selectric, и тут я подошел и спросил: «Вы хотите это выкинуть?» Женщина, которая этим заведовала, удивленно поглядела на меня и протянула мне эту бумагу — так, словно это был рождественский подарок. Это и был рождественский подарок.
Сейбел: Что за бумага?
Стил: Фальцованная бумага от терминала Selectric, на котором они последние пару дней демонстрировали возможности APL. Небольшие примеры программ и все то, что они там набирали. Вот при помощи этих примеров да еще буклета IBM с этой выставки я и выучил APL.
Сейбел: Значит, в MIT вам было хорошо, но вы все же пошли учиться в Гарвард, и при этом работали в MIT. Почему?
Стил: Когда пришло время подавать документы в колледж, я подал бумаги в MIT, Гарвард и Принстон, но учиться хотел в MIT. Меня приняли во все три. Директором Бостонской латинской школы был Уилфрид О'Лири, классицист старой школы, истинный джентльмен. И он сказал моим родителям: «Вы знаете, что вашего сына приняли в Гарвард, а он собирается пойти в MIT?» То есть он надавил на них, они надавили на меня, и в конце концов я решил пойти в Гарвард.
Родители были за то, чтобы я нашел работу на лето, а не болтался дома, — ну, знаете, этот классический синдром. Мне хотелось программировать и не хотелось работать за копейки. Я пытался наняться оператором клавишного перфоратора, думая, что более-менее квалифицирован для этой работы. Но меня нигде не брали — отчасти потому, что мне еще не было 18-ти. Но это я понял позже. Мне просто отвечали: «Не звоните нам, мы сами вам позвоним» — и все.
Где-то в начале июля я узнал, что Билл Мартин из MIT ищет Лисп-программистов. Я подумал: «Ага, я же знаю Лисп». Я так часто бывал в MIT, что раздобыл документацию Лиспа в лаборатории искусственного интеллекта MIT. Я пробирался в лаборатории и возился с компьютерами. Везде было открыто — это было еще до протестов в связи с вьетнамской войной, из-за которых им пришлось врезать дверные замки. Так что в выпускном классе я писал свою собственную реализацию Лиспа для IBM 1130.
И вот я пришел в офис к Биллу Мартину, такой тощий парень из ниоткуда, сунул голову в дверь и спросил: «Я слышал, вы ищете Лисп-программистов?» И он не рассмеялся мне в лицо, а посмотрел на меня и сказал: «Вам придется пройти мой тест по Лиспу». «ОК, прямо сейчас?» Я уселся и два часа разбирался со всеми вопросами и задачами. Закончив, я протянул ему бумаги, он минут десять смотрел то, что я понаписал, и наконец сказал: «Я вас беру».
Сейбел: Лисп вы тоже освоили на курсах MIT для школьников?
Стил: Отчасти, но там больше преподавали Фортран и другое.
Сейбел: У вас в самом начале были сильные учителя?