Кодеры за работой — страница 105 из 124

Сейбел: И подобное чаще происходит с женщинами?

Аллен: Да, мне так кажется. Часто про женщин думают, что они просто не станут устраивать скандал, что у них нет связей и адвоката, который рискнул бы выступить против широко известного вора. Это был известный вор, все об этом знали, но никто не хотел иметь с ним дела. И их было много — во времена работы над Stretch. Одна женщина, по сути, изобрела мультипрограммирование, но все заслуги были приписаны человеку, который в итоге стал лауреатом премии Тьюринга.

Сейбел: Вы бы хотели выиграть премию Тьюринга, не становясь первой женщиной-лауреатом этой премии? Газеты кричали: «Женщина стала лауреатом премии Тьюринга», — и это, наверное, слегка раздражало. Если бы вы могли сделать так, чтобы за десять лет до вас премию получила другая женщина, став первой женщиной-лауреатом, а вы бы просто получили ее в свое время, — вы бы согласились?

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

Но я была рада получить эту награду — отчасти потому, что до этого ни одна женщина не удостаивалась такой чести, и было уже пора. Мне казалось, что всему сообществу было слегка неловко — за 40 лет было 50 мужчин, примерно так. Поэтому я понимала, что уже без всяких сомнений настал срок вручить эту награду женщине, и я была абсолютно счастлива стать первой женщиной, ее получившей. Но я старалась не заострять внимание именно на этом аспекте награды. Я старалась говорить о своем опыте, о своей продолжительной карьере и обо всех достижениях.

Сейбел: Каково это — проработать всю жизнь в IBM?

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

Сейбел: Как вам видится — с вашего наблюдательного пункта на стене: достаточно ли активно и тесно взаимодействуют производство и наука?

Аллен: Несколько лет назад национальный научный фонд опубликовал чудесный отчет с диаграммой на целую страницу, в котором было показано, откуда выросли самые доходные отрасли, такие как графика, Интернет, высокопроизводительные вычисления, транзисторы. Эти производства с оборотом в несколько миллиардов долларов были расположены по оси Y, а по оси X было показано время их зарождения, роль производства (по лаборатории) и роль науки.

Некоторые начинали с производства, некоторые — с науки. Вместе они примерно одинаково повлияли на создание этих отраслей с многомиллиардными оборотами. Мне кажется, что по-настоящему важным является сохранение этого взаимодействия — чтобы идеи, технологии, методы и вложения постоянно курсировали туда и обратно.

В настоящий момент, учитывая курс США на поддержку инноваций, на их важность, думаю, в плане взаимодействия у нас все хорошо — в плане совместной работы и совместного решения проблем. А также решения проблем, которые защищают нас от новых проблем, которые нужно решать, в том числе проблем интеллектуальной собственности.

Сейбел: Нельзя сказать, что IBM в этом отношении абсолютно чиста.

Аллен: Конечно, нет.

Сейбел: У вас наверняка есть несколько патентов.

Аллен: Нет, ни одного. Отчасти из-за того, что раньше на ПО нельзя было получить патент. Другая причина заключается в том, что я часто работала на переднем крае индустрии, а лучшим способом внедрить что-либо в IBM была публикация, и нередко другие компании подхватывали мои идеи. Я была больше заинтересована в том, чтобы реализовать идею в продукте, нежели в том, чтобы получить патент.

Сейбел: То есть это было проще, чем убедить кого-либо из IBM создать продукт на основе вашего исследования?

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

Сейбел: Раз уж вы заговорили о том, что получение премии Тьюринга заставило вас поразмышлять над всей своей карьерой, есть ли одно понятие, объединяющее всю вашу деятельность?

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

Но есть и другая сторона — я хорошо стартую, но не финиширую. Меня привлекают новые вещи. Компиляторы были просто одной из превосходных областей применения сил, поскольку, работая с компьютерами, я постоянно наталкивалась на новые сложные задачи. И по мере их решения я встречала все больше новых сложных и интересных задач.

14. Берни Козелл

В 1969 году, когда первые два узла сети ARPANET — основы будущего Интернета — были введены в строй, каждый пакет данных, передававшийся по арендованным линиям с пропускной способностью 50 Кбит/с, направлялся через два специальных компьютера, носивших название Interface Message Processors (Интерфейсные процессоры сообщений), или IMP. Эти IMP были спроектированы и созданы компанией Bolt Beranek and Newman (BBN), а управлявшие ими программы писали три программиста, одним из которых был Берни Козелл, ушедший с третьего курса Массачусетского технологического института (MIT) ради работы в BBN.

Первоначально нанятый как программист приложений в проекте по созданию одной из первых систем разделения времени, Козелл быстро перешел к программированию самой системы и вскоре стал «царем системы разделения времени PDP-1», ответственным за завершение кода операционной системы и поддержку работы системы.

За свою 26-летнюю карьеру в BBN Козелл занимался практически всем, заслужив в компании репутацию мастера-отладчика и «умельца», который может спасти любой неудачный проект. Он программировал просто для развлечения: чтобы отточить свое мастерство владения Лиспом, он написал DOCTOR — версию знаменитого виртуального собеседника Элиза — по описанию в журнальной статье автора программы Джозефа Вейзенбаума. Написанный на языке BBN-LISP, широко распространившемся по сети ARPANET вместе с операционной системой TENEX, DOCTOR Козелла стал популярнее оригинала Вейзенбаума, вдохновив других программистов на новые версии и похожие программы.

В 1991 году Козелл ушел из BBN и купил овцеводческую ферму в Виргинии, где и проживает сейчас с женой Линн, тремя собаками, бесчисленными котами и большим стадом овец. Он немного программирует для местного интернет-провайдера, занимается собственными проектами и читает несколько курсов по программированию и компьютерной безопасности в высшей школе, не желая больше быть профессиональным программистом. Ирония судьбы в том, что после переезда в сельскую местность Козеллу — одному из отцов современного Интернета — дома сейчас доступно только соединение по телефонной линии.

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


Сейбел: Когда вы начали программировать?

Козелл: В старших классах. Не знаю, правда это или нет, но говорили, что наша школа чуть ли не первой в стране обзавелась собственным компьютером. IBM подарила нам свою модель 1620. Думаю, она появилась в нашей школе за год до меня или тогда же, то есть в 1959 году.

Сейбел: В какой школе вы учились?

Козелл: В научной школе Бронкса в Нью-Йорке. Думаю, те, кто учились до нас, работали еще на IBM 650 Колумбийского университета. Но декан математического факультета был чрезвычайно горд, что у них есть собственный компьютер. Он даже написал учебник по программированию, а в то время их было совсем мало. В итоге я отлаживал все примеры его программ. Практически все, что я помню о старших классах, — это то, как я учился программировать.

Сейбел: Как вы тогда программировали? Ассемблер на перфокартах?

Козелл: Да. В основном на перфокартах, но у модели 1620 уже была своя консоль ввода/вывода; ее роль играла электрическая пишущая машинка IBM Selectric. С ее помощью можно было вводить программы. Чтобы вы поняли, что это была за эпоха: в компьютере не было арифметического блока. Для арифметических действий использовалась таблица, хранящаяся в памяти машины. Например, при сложении двух чисел одно из них давало номер ряда, другое — колонки, а результат находился на их пересечении. Частью создания любой программы был ввод в соответствующий раздел памяти таблиц сложения и умножения.

Так что, в принципе, можно было пользоваться пишущей машинкой, но чаще мы набивали перфокарты и загружали их. Для этого был и Фортран, но я его мало использовал и чаще пользовался ассемблером 1620.

Другой полезный навык, который я освоил в старших классах, — подключение оборудования через коммутационную панель. На каком-то этапе у нас появились, кажется, старые печатающие устройства модели 403, и я занимался их подключением. Это было просто, даже тогда, но десять лет спустя, уже во время работы в BBN, этот опыт мне пригодился. Как-то раз нам понадобилось собрать панель и я сказал: «Дайте инструкцию мне». В результате мне удалось подключить по простому протоколу старое печатающее устройство, чтобы оно служило строковым принтером для нашей PDP-1.

Сейбел: Между школой и работой в BBN еще был MIT?

Козелл: В 1963 году я закончил школу и сразу поступил в MIT. Там было сильное математическое направление, включающее довольно бессистемный компьютерный курс. Он все еще был узкой прикладной дисциплиной на факультете электротехники, специализироваться по компьютерам было нельзя. Ребята как раз начали разрабатывать первые системы разделения времени на модели 709 или 7094, или что у них там было в компьютерном центре, а я в то время с головой ушел в математику.