над доказательством программ, отличаются от специалистов по графическим системам. Поэтому нужно просто найти свои сильные стороны и то, над чем вы хотите работать и над чем не хотели бы. Это вопрос как природы, так и воспитания, и он всегда будет таковым.
Возможно, некоторые из этих систем имеют достаточно уровней и частей, чтобы отдельному человеку было комфортнее работать над одной из них, чем над другими, и он будет приносить на своем месте больше пользы. Думаю, все здесь однотипно. Есть логическое, есть структурное мышление. Есть еще человеческий фактор и творческий импульс. Конкретный человек имеет определенное сочетание природных и образовательных факторов, и, на мой взгляд, здесь мало что изменилось. Сейчас мы пытаемся работать больше и лучше, но мне кажется, что во многом все осталось по-прежнему.
Сейбел: В связи с этим вот какой вопрос: все больше и больше областей зависят от компьютеров, все по-разному, и поэтому некоторые хотели бы найти способ научить программировать “непрограммистов”. Как вы считаете, будет ли так? Или специалисты другой отрасли, например биологи, всегда должны будут объединяться с программистами, чтобы те создавали ПО, которое будет решать их задачи?
Ингаллс: Думаю, такое сотрудничество будет всегда, просто потому, что биолога не заинтересует программирование. Ему нужно выяснить то-то и то-то. И есть такой человек, который понимает, как эта штука, которой ученый занимается, будет выглядеть на компьютерах, и этот человек может ему помочь. По-моему, такая вещь, которая позволяет программировать непрограммисту, называется приложением.
Сейбел: Я работал над проектом, призванным предоставить программную среду для биологов, притом им было нужно, чтобы каждый раз программа соответствовала их случаю. Нельзя создать приложение один раз и этим довольствоваться, потому что биологи не вполне знают, что им нужно, пока не придут к определенным биологическим данным и не скажут: “Я хочу знать X”, - а единственный способ найти
Ингаллс: Да, было бы прекрасно, если бы мы могли создать какую-то компьютерную среду со всей вашей информацией, и вы могли бы сами получить то, что нужно, каким- нибудь очевидным способом. Но я думаю, будут люди, которые этим заинтересуются, и люди, которые этим не заинтересуются.
Сейбел: Есть ли что-то, что вы считаете важным, а я вас об этом не спросил?
Ингаллс: Нередко, читая об известных людях, я задаю себе вопрос: как им удалось обустроить свою жизнь? Как они относятся к вещам, которые не составляют предмет их интереса, как у них обстоят дела с семьей, с финансами, как они сочетают все эти факторы? Или просто залегают на дно и посылают все остальное к черту, пока не закончат с любимой работой?
Сейбел: Случалось ли вам забросить все остальные стороны жизни ради страсти к программированию?
Ингаллс: Да, порой так бывало, потому что я концентрировался на работе, и мне было необходимо поддерживать эту концентрацию. Это обычный риск для любого человека, который любит то, что делает. Либо учишься как-то умерять свой энтузиазм, либо договариваешься с близкими, что сейчас занят и освободишься где-то через неделю, а до того папу лучше не дергать.
Сейбел: Но в итоге-то вы получили от сына “Приз великого отладчика”.
Ингаллс: Именно так. К тому же больше удовольствия получаешь от возвращения к друзьям и семье, которые чувствуют, что папа делает что-то хорошее и нужное, и все будут счастливы, когда он это доделает.
11. Питер Дойч
Питер Дойч - вундеркинд, начал заниматься программированием в конце 1950-х, когда ему было всего 11 лет, после того как его отец принес домой заметку о программировании проектных расчетов для Кембриджского ускорителя электронов в Гарварде. Вскоре после этого он оказался в Массачусетском технологическом институте, где работал над реализацией языка Лисп на компьютере PDP-1, разбирая и улучшая код, написанный программистами MIT, которые были практически вдвое старше его.
Учась на втором курсе в Беркли, Дойч принимал участие в проекте Genie, в рамках которого была создана одна из первых систем разделения времени на основе мини-ЭВМ. Дойч написал большую часть ядра операционной системы. (Кен Томпсон, автор операционной системы UNIX, которому посвящена глава 12, также принимал участие в работе над этим проектом, будучи старшекурсником Беркли. Эта работа нашла отражение в его деятельности, связанной с разработкой UNIX.) После неудачной попытки вывести систему Genie на рынок Дойч перешел в лабораторию Xerox PARC, где работал над средой Interlisp и создавал виртуальную машину Smalltalk, оказав существенное влияние на разработку технологии динамической компиляции (ЛТ).
Он отвечал за исследовательские работы в ParcPlace, подразделении PARC, и получил звание Fellow[69] в Sun Microsystems. Именно во время работы в Sun он написал знаменитые “Fallacies of Distributed Computing” (Заблуждения о распределенных вычислениях). Кроме того, он является автором Ghostscript, программного комплекта, позволяющего интерпретировать язык Postscript. В 1992 году он входил в группу программистов, получивших премию Ассоциации вычислительной техники (АСМ) в номинации “Разработка ПО” за разработку Interlisp, а в 1994 году был избран почетным членом АСМ.
В 2002 году Дойч отошел от разработки Ghostscript и стал вплотную заниматься музыкой. Теперь его можно застать скорее за созданием музыкального произведения, чем программы, но он по-прежнему периодически позволяет себе поиграть с кодом, в основном, собственного музыкального редактора.
В ходе интервью мы среди прочего обсудили серьезные проблемы, актуальные, по мнению Дойча, для любого языка программирования, который включает понятие указателя или ссылки; поговорили о том, почему ПО должно рассматриваться как основной актив, а не статья расхода, и почему он окончательно перестал заниматься программированием на профессиональном уровне.
Сейбел: Как вы начали заниматься программированием?
Дойч: Программированием я стал заниматься по чистой случайности в 11 лет. Мой отец принес домой какую-то заметку о Кембриджском ускорителе электронов, который в то время строили. Существовала некая группа, которая занималась проектными расчетами, и их заметка оказалась у моего отца. Я увидел ее у него в кабинете - там был какой-то компьютерный код, и что-то в нем было такое, что захватило мое воображение.
Оказалось, что эта заметка была лишь дополнением к другой заметке, поэтому я попросил отца найти эту заметку. Когда он принес ее домой, я взглянул на нее и сказал: “Ого, а ведь это на самом деле интересно”. Наверное, я даже попросил отца познакомить меня с человеком, который написал эту заметку. Мы встретились. Уже не помню подробностей, это было 50 лет назад. Так или иначе, мне было поручено написать какую-то небольшую часть кода для одного из проектных расчетов для Кембриджского ускорителя электронов. Вот так я и начал.
Сейбел: Вам тогда было 11 лет. В 14 или 15 лет вы уже занимались с PDP-1 в MIT, в котором ваш отец был профессором.
Дойч: В 14 лет я добрался сначала до ТХ-0, а вскоре после этого и до PDP-1. Помнится, однажды ко мне попал экземпляр руководства для программистов на Лиспе версии 1.5. Не помню, как именно это произошло. Это была одна из самых первых версий - она была напечатана на мимеографе старыми фиолетовыми чернилами. Что-то в Лиспе захватило мое воображение. Я всегда любил математику, и Лисп показался мне очень клевым. Я хотел поработать с ним, но никак не мог добраться до мейнфрейма из здания. Поэтому создал свою версию Лиспа на PDP-1.
Сейбел: Вы помните хотя бы приблизительно, как разрабатывали собственную версию Лиспа на PDP-1?