Сейбел:То есть вы бросили магистратуру?
Ингаллс:Да, на кафедре радиотехники факультета электротехники Стэнфорда.
Сейбел:Что представляла собой программа, с которой вы начали свое дело?
Ингаллс:Все началось еще у Кнута в рамках его семинара по оценке программ и их динамического поведения.
Сейбел:То есть по профилированию?
Ингаллс:Ну, да. Была программа, которая внедрялась в программу на Фортране и вставляла счетчики во все точки ветвления. Я сделал версию посимпатичнее, в ней было прерывание по таймеру, так что она могла записывать, сколько времени потрачено в разных частях программы.
Сейбел:То есть фактически дискретный профилировщик?
Ингаллс:Да. Ичто еще тут важно: раньше профилирование по времени обычно работало в терминах адресов памяти и требовалась чуть ли не квантовая механика, чтобы понять, что означают полученные результаты. Здесь же работа шла в терминах исходного кода, и вы видели: “Вот, все время расходуется здесь”. То есть пользователь мог немедленно воспользоваться информацией. Я понял: “О! На этом можно сыграть”.
Сейбел:Вы занимались этим, пока не пришли в Xerox PARC ?
Ингаллс:В общем, да. Вот как я оказался в PARC. Я много времени проводил в местных сервисных центрах: один принадлежал Control Data, а другой - IBM. И я носил свою программу в разные места, чтобы убедиться, что она запустится на конкретном компьютере.
Сейбел:Это по-прежнему был код профилирования Фортрана?
Ингаллс:Да. Но я выяснил кое-что интересное. Кто в основном использует Фортран? Те, кто работает с объемными научными вычислениями. А на кого они обычно работают? На правительство. Интересно им, насколько эффективна их программа? На самом деле, нет. Чаще всего они как раз хотят показать, что их компьютер перегружен, что им нужен новый компьютер и больше денег. Я показал свою программу в паре компаний, и там сказали: “Эх, вот для Кобола - было бы отлично”.
Сейбел:Потому что больше денег для крутого железа под Кобол им бы никто не дал.
Ингаллс:Вот именно. И я написал такую же штуку для Кобола. Это было мое боевое крещение в плане Кобола. Помню, как писал завершающую процедуру, которая собирала статистику прерываний по таймеру. Завершающая процедура должна быть написана на том же языке, что и оцениваемая программа, чтобы в нее встроиться. Так что, наверное, я единственный в истории человек, который написал хеш-таблицу на Коболе.
Продажи шли, во всяком случае, неплохо. Помню несколько выездных продаж, когда я прогонял на их программах демоверсию и, пока она работала, показывал им, как сэкономить больше, чем стоит сама программа.
Бегая по этим сервисным центрам, я как-то попал в центр CDC в Стэн-фордском индустриальном парке. Обычно работаешь поздно ночью, потому что дешевле. Там я познакомился с парнем, у которого была программа на Фортране для распознавания речи. У него были различные образцы речи, его программа анализировала спектр, группировала фонемы и все такое прочее. Я разговорился с ним и спросил: “Слушай, а не хочешь запустить свою программу с моим профилировщиком?” Так мы и сделали, а потом расстались.
Через пару недель он позвонил мне и сказал: “Я нанялся в Xerox, буду делать для них проект по распознаванию речи. Но тут никто не может мне помочь с разной рутиной, не хочешь со мной поработать?” И я согласился. Это был Джордж Уайт, который долгие годы занимался распознаванием речи. Так я оказался связан с Xerox, а также с Аланом Кэем, поскольку мой офис оказался прямо напротив его, так что доносящиеся оттуда разговоры привлекали мое внимание больше, чем распознавание речи.
Сейбел:Это распознавание речи оказалось таким скучным - или тут что-то связано с программированием?
Ингаллс:Нет, оно было интересным, даже захватывающим. Я в конце концов построил целую среду для персонального компьютера на том мини-компьютере Sigma 3. Использовались пачки перфокарт, работа велась главным образом на Фортране. Из всего этого я создал интерактивную среду. Я написал на Фортране текстовый редактор, а затем средство удаленного управления с терминала. Получилась симпатичная вычислительная среда, довольно затейливая.
Сейбел:Стремление к интерактивным средам красной нитью проходит через вашу карьеру. Например, первый Smalltalk вы написали на Бейсике, потому что он обеспечивал интерактивную среду. Когда вы впервые поняли, что главное условие решения проблемы - это интерактивная программная среда?
Читать дальше
Конец ознакомительного отрывка
Купить книгу