производительности, я по-прежнему работаю, как описал. Мы сделали действительно отличный профилировщик на Smalltalk, а затем на Squeak, с помощью которого можно получить качественную обратную связь. Отчасти здесь речь о производительности, но отчасти - о структуре и архитектуре. Можно обнаружить, что некоторые элементы почти совсем не используются, так что от них можно отказаться, сделав что-то иначе. Это просто другая точка зрения.

Сейбел: Наверное, почти у каждого программиста есть книга Кнута “The Art of Computer Programming”[68]. У одних она просто стоит на полке, другие используют ее постоянно. А кое-кто вообще прочитал ее от корки до корки и знает назубок. Собственно, вы-то общались с Кнутом в Стэнфорде. Вы читали книгу?

Ингаллс: Мне нравилось работать с Доном, один семестр я посещал его курс по MIX в Стэнфорде, и это было очень полезно. Думаю, мы с Доном серьезно отличаемся друг от друга, но что мне в нем нравится, так это то, что у него отличный математический ум, при этом он любит и глубоко погружаться в мелочи, то есть в прагматическую сторону вещей. Я тоже люблю прагматизм, но мне недостает строгости подхода Дона.

Я по образованию физик, и для меня проблемы, над которыми я работаю, выглядят физическими задачами. Говоря о других перспективах программ, я представляю их себе как вещи, которые можно потрогать - и почувствовать ответную вибрацию.

Возьмем то, как он работал над ТеХ: все это было математически выверено, красиво и элегантно. Сравним с этим, например, первые движки Smalltalk: они были сделаны почти как попало. Я просто свел вместе все, что было нужно для конкретной цели. Возможно, этому предшествовало несколько неудачных опытов. Изначально я хотел сделать математическую модель, может, мы ее даже и сделали, но в итоге все получилось не так, как ожидалось.

Так что, честно говоря, я прочел довольно много его основополагающих работ о структурах данных, но я вообще не очень люблю читать, мне бы делать. Если у меня и есть какой-то недостаток, так это то, что я лучше изобрету собственный велосипед, чем прочту нужную литературу и узнаю, как его делать. Обычно это оказывалось моим преимуществом, но кто знает?

Сейбел: Как вы считаете, в каком объеме программистам необходима математика? Дейкстра заявил, что компьютерные науки - просто отрасль математики. А понимание “Искусства программирования” требует недюжинного знания математики.

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

Большая часть программирования, на мой взгляд, скорее относится к архитектуре: то, как графика взаимодействует с моделями, то, как нужно кэшировать или обновлять информацию. Это не заумная математика. То есть я действительно считаю, что программирование - во многом одна из отраслей математики. На мой взгляд, компьютеры очень важны в том числе и потому, что позволяют математике быть синтетическим, а не только аналитическим искусством. То, чем я так люблю заниматься день за днем, безусловно, имеет отношение к математике, но это наука творческая, порождающая, синтетическая.

Сейбел: Вы сказали, что не очень-то любите читать. Есть ли тем не менее какие-то книги, которые вы могли бы порекомендовать?

Ингаллс: Нет. Уверен, что тут я в меньшинстве. Я и в детстве читать не любил. Иногда я читаю очень тщательно и не прерываясь, пока не закончу. Конечно, я могу назвать несколько статей, и, вероятно, некоторые из них выросли потом в книги. Одна из них - это статья Вэла Шорра о META II. Потом есть книга о Lisp 1.5. Есть еще APL, но книга Айверсона, по-моему, не лучшее пособие для обучения. Пусть ее математики читают. Даже не помню, что я про это читал, но мне понравилось. Думаю, вместо чтения книги можно потратить время на какой-нибудь язык. Например, на Smalltalk.

Сейбел: Вы все так же любите программировать, как и тогда, когда начинали?

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

Сейбел: Как вы считаете, программирование - удел молодых?

Ингаллс: Нет, не думаю. Самое важное - это иметь способности к исследованию того, что происходит, и ту бесконечную энергию, которой, кажется, у меня больше нет. Но я все еще люблю взять проблему, посидеть над ней и сделать так, чтобы все заработало. Вот такая аналогия: я стал учиться играть на фортепьяно сравнительно поздно. Мне говорили: “О, вам надо было раньше начать, вы так быстро все схватываете”. Хотя далеко я не продвинулся, но могу сделать вывод, что неверно, будто бы в молодости обучение всегда дается проще; у них просто больше времени. Когда я тратил достаточно времени, прогресс был.

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

Сейбел: Программирование требует времени, но не нужны ли для него также и трудолюбие, и концентрация? Говорят, что это непрерывный процесс, что если отвлекать человека каждые пятнадцать минут, то он ничего не сделает, потому что требуется много времени даже для того, чтобы начать раскладывать идеи по полочкам в голове.

Ингаллс: Это мне напоминает то, что я когда-то сказал кому-то в PARC. У меня появились другие обязанности, кроме возни со Smalltalk, но мы уже сильно продвинулись на пути создания из него действительно очень продуктивной системы. Я пошутил, что спешу улучшить среду Smalltalk, чтобы в промежутках между этой деятельностью можно было наконец заняться нормальной работой. Так что я привык к тому, что у меня есть минут 15, и в это время я успевал посидеть и придумать что-нибудь полезное.

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

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

Ингаллс: Просто я люблю то, что делаю. И мне нравится сотрудничать с другими. Они могут работать вглубь или вширь, так что несложно найти рабочие задачи для разных людей. Мне всегда нравилось работать с другими. Работа идет то лучше, то хуже - бывают разные фазы. Иногда понимаешь буквально все, что надо сделать, и нужно только сказать людям, что делать. А бывает и по- другому: не знаешь, что нужно сделать, и пытаешься это выяснить. Это два очень разных состояния.

Сейбел: Можете ли вы что-нибудь посоветовать по поводу того, как стать хорошим техническим лидером команды?

Ингаллс: Во-первых, нужно ясно дать понять, что вы пытаетесь сделать. Нужно обеспечить всем недвусмысленное представление о работе. Если вы в курсе дела, то можете сами увидеть, как собираетесь реализовать ту или иную идею, чтобы начать понимать, как она будет работать, если этим займутся несколько человек одновременно, и как все это увязать.

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

Сейбел: Бывало ли так, что слишком ясное представление о цели, наоборот, лишало людей мотивации: мол, раз все и так понятно, то доделывать это

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату