Читаем Кодеры за работой. Размышления о ремесле программиста полностью

В результате я решил, что, возможно, меня заинтересует электротехника. Я поступил на это направление в Стэнфорде, записался на несколько курсов по компьютерным наукам, и мне очень понравилось. Электротехника не занимала у меня много времени. Я попал на курс к Дональду Кнуту, это был курс по оценке программ, и он пришелся мне по душе. Я, собственно, уже работал над программой, которая анализировала бы другие программы, и ушел из Стэнфорда, чтобы сделать на ней бизнес. На следующий год я поступил в магистратуру, а потом ушел. В 1968 году, полагаю.

Сейбел: То есть вы бросили магистратуру?

Ингаллс: Да, на кафедре радиотехники факультета электротехники Стэнфорда.

Сейбел: Что представляла собой программа, с которой вы начали свое дело?

Ингаллс: Все началось еще у Кнута в рамках его семинара по оценке программ и их динамического поведения.

Сейбел: То есть по профилированию?

Ингаллс: Ну, да. Была программа, которая внедрялась в программу на Фортране и вставляла счетчики во все точки ветвления. Я сделал версию посимпатичнее, в ней было прерывание по таймеру, так что она могла записывать, сколько времени потрачено в разных частях программы.

Сейбел: То есть фактически дискретный профилировщик?

Ингаллс: Да. И что еще тут важно: раньше профилирование по времени обычно работало в терминах адресов памяти и требовалась чуть ли не квантовая механика, чтобы понять, что означают полученные результаты. Здесь же работа шла в терминах исходного кода, и вы видели: «Вот, все время расходуется здесь». То есть пользователь мог немедленно воспользоваться информацией. Я понял: «О! На этом можно сыграть».

Сейбел: Вы занимались этим, пока не пришли в Xerox PARC ?

Ингаллс: В общем, да. Вот как я оказался в PARC. Я много времени проводил в местных сервисных центрах: один принадлежал Control Data, а другой — IBM. И я носил свою программу в разные места, чтобы убедиться, что она запустится на конкретном компьютере.

Сейбел: Это по-прежнему был код профилирования Фортрана?

Ингаллс: Да. Но я выяснил кое-что интересное. Кто в основном использует Фортран? Те, кто работает с объемными научными вычислениями. А на кого они обычно работают? На правительство. Интересно им, насколько эффективна их программа? На самом деле, нет. Чаще всего они как раз хотят показать, что их компьютер перегружен, что им нужен новый компьютер и больше денег. Я показал свою программу в паре компаний, и там сказали: «Эх, вот для Кобола — было бы отлично».

Сейбел: Потому что больше денег для крутого железа под Кобол им бы никто не дал.

Ингаллс: Вот именно. И я написал такую же штуку для Кобола. Это было мое боевое крещение в плане Кобола. Помню, как писал завершающую процедуру, которая собирала статистику прерываний по таймеру. Завершающая процедура должна быть написана на том же языке, что и оцениваемая программа, чтобы в нее встроиться. Так что, наверное, я единственный в истории человек, который написал хеш-таблицу на Коболе.

Продажи шли, во всяком случае, неплохо. Помню несколько выездных продаж, когда я прогонял на их программах демоверсию и, пока она работала, показывал им, как сэкономить больше, чем стоит сама программа.

Бегая по этим сервисным центрам, я как-то попал в центр CDC в Стэн-фордском индустриальном парке. Обычно работаешь поздно ночью, потому что дешевле. Там я познакомился с парнем, у которого была программа на Фортране для распознавания речи. У него были различные образцы речи, его программа анализировала спектр, группировала фонемы и все такое прочее. Я разговорился с ним и спросил: «Слушай, а не хочешь запустить свою программу с моим профилировщиком?» Так мы и сделали, а потом расстались.

Через пару недель он позвонил мне и сказал: «Я нанялся в Xerox, буду делать для них проект по распознаванию речи. Но тут никто не может мне помочь с разной рутиной, не хочешь со мной поработать?» И я согласился. Это был Джордж Уайт, который долгие годы занимался распознаванием речи. Так я оказался связан с Xerox, а также с Аланом Кэем, поскольку мой офис оказался прямо напротив его, так что доносящиеся оттуда разговоры привлекали мое внимание больше, чем распознавание речи.

Сейбел: Это распознавание речи оказалось таким скучным — или тут что-то связано с программированием?

Ингаллс: Нет, оно было интересным, даже захватывающим. Я в конце концов построил целую среду для персонального компьютера на том мини-компьютере Sigma 3. Использовались пачки перфокарт, работа велась главным образом на Фортране. Из всего этого я создал интерактивную среду. Я написал на Фортране текстовый редактор, а затем средство удаленного управления с терминала. Получилась симпатичная вычислительная среда, довольно затейливая.

Сейбел: Стремление к интерактивным средам красной нитью проходит через вашу карьеру. Например, первый Smalltalk вы написали на Бейсике, потому что он обеспечивал интерактивную среду. Когда вы впервые поняли, что главное условие решения проблемы — это интерактивная программная среда?

Перейти на страницу:

Похожие книги

Адмирал Советского Союза
Адмирал Советского Союза

Николай Герасимович Кузнецов – адмирал Флота Советского Союза, один из тех, кому мы обязаны победой в Великой Отечественной войне. В 1939 г., по личному указанию Сталина, 34-летний Кузнецов был назначен народным комиссаром ВМФ СССР. Во время войны он входил в Ставку Верховного Главнокомандования, оперативно и энергично руководил флотом. За свои выдающиеся заслуги Н.Г. Кузнецов получил высшее воинское звание на флоте и стал Героем Советского Союза.В своей книге Н.Г. Кузнецов рассказывает о своем боевом пути начиная от Гражданской войны в Испании до окончательного разгрома гитлеровской Германии и поражения милитаристской Японии. Оборона Ханко, Либавы, Таллина, Одессы, Севастополя, Москвы, Ленинграда, Сталинграда, крупнейшие операции флотов на Севере, Балтике и Черном море – все это есть в книге легендарного советского адмирала. Кроме того, он вспоминает о своих встречах с высшими государственными, партийными и военными руководителями СССР, рассказывает о методах и стиле работы И.В. Сталина, Г.К. Жукова и многих других известных деятелей своего времени.Воспоминания впервые выходят в полном виде, ранее они никогда не издавались под одной обложкой.

Николай Герасимович Кузнецов

Биографии и Мемуары
100 великих гениев
100 великих гениев

Существует много определений гениальности. Например, Ньютон полагал, что гениальность – это терпение мысли, сосредоточенной в известном направлении. Гёте считал, что отличительная черта гениальности – умение духа распознать, что ему на пользу. Кант говорил, что гениальность – это талант изобретения того, чему нельзя научиться. То есть гению дано открыть нечто неведомое. Автор книги Р.К. Баландин попытался дать свое определение гениальности и составить свой рассказ о наиболее прославленных гениях человечества.Принцип классификации в книге простой – персоналии располагаются по роду занятий (особо выделены универсальные гении). Автор рассматривает достижения великих созидателей, прежде всего, в сфере религии, философии, искусства, литературы и науки, то есть в тех областях духа, где наиболее полно проявились их творческие способности. Раздел «Неведомый гений» призван показать, как много замечательных творцов остаются безымянными и как мало нам известно о них.

Рудольф Константинович Баландин

Биографии и Мемуары
100 великих интриг
100 великих интриг

Нередко политические интриги становятся главными двигателями истории. Заговоры, покушения, провокации, аресты, казни, бунты и военные перевороты – все эти события могут составлять только часть одной, хитро спланированной, интриги, начинавшейся с короткой записки, вовремя произнесенной фразы или многозначительного молчания во время важной беседы царствующих особ и закончившейся грандиозным сломом целой эпохи.Суд над Сократом, заговор Катилины, Цезарь и Клеопатра, интриги Мессалины, мрачная слава Старца Горы, заговор Пацци, Варфоломеевская ночь, убийство Валленштейна, таинственная смерть Людвига Баварского, загадки Нюрнбергского процесса… Об этом и многом другом рассказывает очередная книга серии.

Виктор Николаевич Еремин

Биографии и Мемуары / История / Энциклопедии / Образование и наука / Словари и Энциклопедии