355 500 произведений, 25 200 авторов.

Электронная библиотека книг » Уолтер Айзексон » Инноваторы. Как несколько гениев, хакеров и гиков совершили цифровую революцию » Текст книги (страница 8)
Инноваторы. Как несколько гениев, хакеров и гиков совершили цифровую революцию
  • Текст добавлен: 6 октября 2016, 05:50

Текст книги "Инноваторы. Как несколько гениев, хакеров и гиков совершили цифровую революцию"


Автор книги: Уолтер Айзексон



сообщить о нарушении

Текущая страница: 8 (всего у книги 46 страниц) [доступный отрывок для чтения: 17 страниц]

Так кто же изобрел компьютер?

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

“Программируемое, обычно электронное устройство, которое может хранить, извлекать и обрабатывать данные” (словарь Merriam-Webster).

“Электронное устройство, которое может получать информацию (данные) в определенной форме и выполнять последовательность операций в соответствии с предварительно заданным, но изменяемым набором процедурных инструкций (программой) для получения результата” (Оксфордский английский словарь).

“Устройство общего назначения, которое может быть запрограммировано для автоматического выполнения набора арифметических или логических операций” (“Википедия”, 2014).

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

Модель K Джорджа Роберта Стибица, которую тот начал строить на своем кухонном столе в ноябре 1937 года, в январе 1940 года в Bell Labs трансформировалась в полнофункциональную модель и стала двоичным компьютером и первым устройством с удаленным доступом. Но в ней использовались электромеханические реле, и, таким образом, она не была полностью электронной. Она не была также ни программируемой, ни универсальной, а предназначалась для решения определенной задачи.

Строительство машины Z3 Германа Цузе было завершено в мае 1941 года, и она стала первым автоматически контролируемым, программируемым электрическим двоичным устройством. Она была разработана для решения инженерных проблем, а не для решения общих задач. Тем не менее позже было показано, что теоретически ее можно было бы использовать в качестве тьюринг-полной машины. Ее главное отличие от современных компьютеров состояло в том, что она была электромеханической, а не электронной. Скорость ее работы определялась медленно срабатывающими переключателями – щелкающими реле. Другим недостатком являлось то, что она никогда не пошла в серию, поскольку была разрушена в результате бомбардировок союзниками Берлина в 1943 году.

Создание компьютера, сконструированного Джоном Винсентом Атанасовым, было остановлено в тот момент, когда Атанасов перестал им заниматься, уйдя служить в ВМФ в сентябре 1942 года, и его компьютер так и не стал полноценно работающим. Он был первым электронным цифровым компьютером в мире, но все-таки не полностью электронным. В его устройствах сложения и вычитания действительно использовались электронные лампы, но блоки памяти и извлечения данных содержали механические вращающиеся барабаны. Другим его основным недостатком, не позволяющим считать его первым современным компьютером, было то, что он не был ни программируемым, ни универсальным, а, напротив, был жестко ориентирован на специальную задачу решения линейных уравнений. Кроме того, Атанасов никогда не смог заставить его работать полноценно, и он был похоронен в подвале Университета Айовы.

Colossus I, завершенный в декабре 1943 года Максом Ньюманом и Томми Флауэрсом (с участием Алана Тьюринга) в Блетчли-Парке, был первым цифровым полностью электронным компьютером, который был и программируемым, и работающим. Он не был, однако, компьютером общего назначения или тьюринг-полной машиной, поскольку предназначался для решения определенной задачи – взлома военных кодов Германии.

Компьютер Mark I Говарда Айкена, построенный с участием IBM и введенный в эксплуатацию в мае 1944 года, был, как мы увидим в следующей главе, программируемым, но это было электромеханическое, а не электронное устройство.

ENIAC, построенный Преспером Эккертом и Джоном Мокли в ноябре 1945 года, был первой машиной, включающей в себя полный набор черт современного компьютера. Он был полностью электронным, сверхбыстрым, и его можно было программировать с помощью подключения и отключения соответствующих кабелей, соединяющих различные его блоки. Он мог менять ветвь программы в зависимости от промежуточных результатов и считался компьютером общего назначения, тьюринг-полной машиной, то есть теоретически мог решать любую задачу. Самое главное его достоинство – в том, что он работал. “Важная черта изобретения, – позже сказал Эккерт, сравнивая их машину с машиной Атанасова, – когда вся ваша система работает как целое”74. Мокли и Эккерт сами проделали на своей машине некоторые очень сложные вычисления, и в течение последующих десяти лет она постоянно использовалась. Она стала прототипом для большинства последующих компьютеров.

Этот последний фактор имеет важное значение при определении того, кто должен стать наиболее известным в истории. Когда мы отдаем пальму первенства, мы смотрим в том числе на то, чей вклад оказал наибольшее влияние. Изобретение предполагает какое-то влияние и на ход истории в целом, и на развитие инноваций. Если использовать в качестве критерия роль в истории, то следует считать Эккерта и Мокли наиболее выдающимися инноваторами. Почти во всех компьютерах 1950-х годов прослеживается влияние ENIAC. Влияние Флауэрса, Ньюмана и Тьюринга сложнее оценить. Их работа была строжайшим образом засекречена, но все трое и после войны участвовали в создании британских компьютеров. Цузе, который работал в Берлине под обстрелом в одиночестве, оказал еще меньше влияния на повсеместное развитие компьютерной технологии. Что касается Атанасова, его основное влияние, а возможно и единственное, состояло в том, что во время визита к нему Мокли он вдохновил того несколькими своими идеями.

Вопрос о том, какие идеи Мокли присвоил в ходе своего четырехдневного визита к Атанасову в Айову в июне 1941 года, перешел в затяжной правовой спор. В связи с этим при оценке первенства на изобретение возникает еще один критерий – скорее юридический, чем исторический: кто в конечном итоге получил патент, если кто-то получил вообще? В случае с первыми компьютерами не получил патента никто. Но это произошло в результате одиозной судебной баталии, которая привела к тому, что патенты Эккерта и Мокли были аннулированы75.

Эпопея началась в 1947 году, когда Эккерт и Мокли после ухода из Пенна подали заявку на патент на их работы по ENIAC, и в конце концов патент был получен в 1964 году (патентная система работает довольно медленно). К этому времени компания Эккерта – Мокли вместе с ее правами на патенты была продана компании Remington Rand, которая стала называться Sperry Rand, и она и потребовала от других компаний платить ей лицензионные отчисления. IBM и Bell Labs решили платить, но Honeywell отказалась и начала искать пути оспорить патенты. Наняли молодого адвоката – Чарльза Колла, который имел степень по инженерии и работал в Bell Labs. Его цель состояла в том, чтобы аннулировать патент Эккерта – Мокли, доказав, что патентуемые положения не были оригинальными.

Получив рекомендации от адвоката Honeywell, который съездил в Университет Айовы и почитал про сконструированный Атанасовым компьютер, Колл посетил Атанасова в его доме в штате Мэриленд. Атанасов был польщен осведомленностью Колла о деталях его компьютера и обижен тем, что так и не получил должного признания, поэтому он передал Коллу сотни писем и документов, доказывавших, что Мокли присвоил некоторые идеи во время своего визита в Айову. Тем же вечером Колл поехал в Вашингтон и прослушал лекцию Мокли, сидя в заднем ряду. В ответе на вопрос о машине Атанасова Мокли сказал, что он едва взглянул на нее. Колл понял, что если бы он мог вынудить Мокли сказать это же под присягой, то сумел бы дискредитировать его в суде с помощью документов, полученных от Атанасова.

Когда спустя несколько месяцев Мокли понял, что с помощью Атанасова Honeywell может оспорить его патенты, он сам приехал к Атанасову домой в Мэриленд, взяв с собой адвоката Sperry Rand. Это была неловкая встреча. Мокли утверждал, что во время его визита в Айову он не разбирался в подробностях докладной записки Атанасова и не рассматривал детали его компьютера, но Атанасов холодно возразил, что это не так. Мокли остался на ужин и попытался обаять Атанасова, но безрезультатно.

В июне 1971 года вопрос уже рассматривался в Миннеапо-лисском суде, председательствовал федеральный судья Эрл Ларсон. Мокли представил неубедительные свидетельства. Ссылаясь на плохую память, он сбивчиво рассказал о том, что увидел во время своего визита в Айову, неоднократно отказывался от утверждений, сделанных ранее, говорил, что он видел компьютер Атанасова только частично приоткрытым и в тусклом свете. Атанасов, напротив, был очень убедительным. Он описал построенную им машину, продемонстрировал модель и перечислил, какие идеи Мокли взял у него. Семьдесят семь свидетелей были вызваны для дачи показании, еще восемьдесят дали письменные показания под присягой, кроме того, было описано 32 600 вещдоков. Судебное разбирательство длилось более девяти месяцев, и таким образом оно стало самым длинным разбирательством федерального суда по подобным вопросам.

Судье Ларсону потребовалось еще девятнадцать месяцев, чтобы подготовить окончательное решение, которое и было оглашено в октябре 1973 года. В нем он постановил, что патент Эккерта – Мокли на ENIAC недействителен: “Эккерт и Мокли не первыми изобрели автоматический электронный цифровой компьютер, а позаимствовали этот объект изобретения у доктора Джона Винсента Атанасова”76. Вместо того чтобы подать апелляцию, Sperry договорился с Honeywell[17]17
  К этому времени Атанасов отошел от дел. Его карьера после Второй мировой войны была связана с военными снарядами и артиллерией, а не с компьютерами. Он умер в 1995 г. Джон Мокли продолжал работать в компьютерной науке в качестве консультанта Sperry и в качестве основателя и президента Ассоциации вычислительной техники. Он умер в 1980 г. Эккерт также проработал большую часть жизни в Sperry. Он умер в 1995 г.


[Закрыть]
.

Мнение судьи, изложенное на 248 страницах, было тщательно выверенным, но в нем не были рассмотрены некоторые существенные различия между машинами. Мокли взял не так много из машины Атанасова, как, кажется, думал судья. Например, в электронной схеме Атанасова использовалась двоичная логика, в то время как у Мокли был десятичный счетчик. Если бы патентные претензии Эккерта – Мокли были менее амбициозными, патент бы, наверное, выжил.

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

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

Следует также признать большие заслуги Тьюринга и в разработке концепции универсального компьютера, и в последующем участии в работе команды в Блетчли-Парке. Как оценить исторический вклад других инноваторов – в какой-то степени зависит от критериев оценки. Если вам импонирует романтика творчества одиноких изобретателей и при этом вы меньше озабочены тем, кто в историческом плане больше повлиял на развитие компьютерной техники, вы можете поставить Атанасова и Цузе на первые места. Но главный урок, который можно извлечь из истории рождения компьютеров, состоит в том, что инновации, как правило, возникают, когда объединяются усилия “провидцев” и инженеров, и что творчество питается из различных источников. Только в сказках изобретение возникает подобно грому среди ясного неба или лампочке, загорающейся в голове одиночки, творящего в подвале, на чердаке или в гараже.


Говард Айкен и Грейс Хоппер (1906–1992) с фрагментом разностной машины Бэббиджа в Гарварде, 1946 г



Справа: Джин Дженнингс (1924–2011), 1945 г. и Бетти Снайдер (1917–2001), 1944 г


Внизу: Джин Дженнингс и Фрэнсис Байлас с машиной ENIAC


Глава 3
Программирование

До появления современного компьютера оставался еще один важный шаг. Все машины, построенные во время войны, проектировались, по крайней мере на начальном этапе, для выполнения конкретной задачи, например для решения уравнений или расшифровки кодов. Настоящий компьютер, как он виделся Аде Лавлейс, а затем Алану Тьюрингу, должен был уметь легко и быстро выполнять любую логическую операцию. Это потребовало создания машин, работа которых определялась бы не только их hardware (аппаратным устройством), но и software, то есть программным обеспечением – набором команд, по которым эти машины могли работать. Тьюринг изложил эту концепцию совершенно ясно. “Нам не нужно бесконечного количества различных машин, решающих различные задачи, – писал он в 1948 году. – Достаточно одной. Инженерная задача конструирования различных машин для выполнения различных задач заменяется интеллектуальной работой по «программированию» универсальной машины для выполнения всех этих задач”1.

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

Грейс Хоппер

Начиная с Чарльза Бэббиджа, мужчины, конструировавшие компьютеры, сосредотачивались в первую очередь на аппаратном устройстве. Но во время Второй мировой войны в процесс развития вычислительных машин были вовлечены женщины, которые уже на начальной стадии поняли важность программирования, так же как раньше это поняла Ада Лавлейс. Они разработали способы кодирования инструкций, которые давали указания аппаратуре, какие операции выполнять. Именно в программном обеспечении заложены магические формулы, способные чудодейственным образом преобразить машины.

Самой колоритной из первых женщин-программисток была смелая и энергичная, но в то же время очаровательная и интеллигентная Грейс Хоппер, служившая офицером в ВМС США. Позже она работала с Говардом Айкеном в Гарварде, а затем с Преспером Эккертом и Джоном Мокли. Родилась Грейс Брюстер Мюррей в 1906 году в зажиточной семье, проживавшей в Верхнем Вест-Сайде на Манхэттене. Ее дед был инженером и брал ее с собой в поездки на топографические съемки в окрестностях Нью-Йорка, мать была математиком, а отец – страховым агентом. Она окончила Вассар, защитив диплом в области математики и физики, а затем поступила в Йельский университет, где в 1934 году получила докторскую степень по математике2.

Полученное ею образование было не так уж необычно, как можно было бы подумать. Она была одиннадцатой женщиной, получившей докторскую степень по математике в Йельском университете, первая получила степень в 1895 году3. Для женщины, особенно из процветающего семейства, в 1930 году получение докторской степени по математике не было такой уж редкостью. На самом деле, тогда это было более распространено, чем в следующем поколении. В 1930-х годах 113 американских женщин получили докторскую степень по математике, то есть на них пришлось 15 процентов от общего числа всех американских докторских степеней по математике, полученных за эти годы. В 1950-х годах их было только 106 за десять лет, то есть 4 % от общего числа. (За первое десятилетие 2000-х годов ситуация стала более чем нормальной, и 1600 женщин, то есть 30 % от общего числа, получили докторские степени по математике.)

Выйдя замуж за профессора сравнительной литературы Винсента Хоппера, Грейс поступила на работу в Вассар и стала преподавать математику. В отличие от большинства преподавателей этого предмета она требовала, чтобы ее ученики умели письменно излагать мысли. Свой курс по теории вероятности она начинала с лекции об одной из своих любимых математических формул[18]18
  Формула Стирлинга для вычисления приближенного значения факториала n!. – Прим. автора.


[Закрыть]
и просила учеников написать эссе о ней. Этим она добивалась ясности в изложении и стиле. “Я могла испещрить их тексты [эссе] замечаниями, и поднимался бунт, они могли возмущаться, что это курс математики, а не английского, – вспоминала она. – Тогда я объясняла им, что нет смысла пытаться изучать математику, если они не могут общаться с другими людьми”4. На протяжении всей своей жизни она лучше всех справлялась с переводом научных задач (таких как нахождение траекторий, движение потока жидкости, динамика взрывов и погодных условий) в математические уравнения и с описанием их на обычном языке. Этот талант помог ей стать хорошим программистом.

К 1940 году Грейс Хоппер стало скучно. У нее не было детей, брак уже превратился в рутину, преподавание математики не настолько увлекало ее, как она надеялась. Она взяла на время отпуск в Вассаре и решила поучиться у известного математика Рихарда Куранта в Нью-Йоркском университете, сфокусировавшись на методах решения частных дифференциальных уравнений. Когда японцы напали на Перл-Харбор в декабре 1941 года, она все еще училась у Куранта. Вступление Америки во Вторую мировую войну предоставило ей шанс изменить свою жизнь, и она воспользовалась им: в течение следующих восемнадцати месяцев она бросила Вассар, развелась с мужем и в возрасте тридцати шести лет вступила в ВМС США. Ее послали в Школу мичманского резерва в колледже Смита в штате Массачусетс, и в июне 1944 года она окончила ее лучшей в своем классе, став лейтенантом Грейс Хоппер.

Она предполагала, что будет назначена в группу криптографии и кодирования, но, к ее удивлению, ей было приказано явиться в Гарвардский университет для работы на машине Mark I – исполинском цифровом компьютере с неуклюжими электромеханическими реле и поворотным валом, приводимым в движение моторчиком. Эта машина, описанная выше, была сконструирована Говардом Айкеном в 1937 году. К тому времени, когда Хоппер была прикомандирована к машине, машиной распоряжались ВМС; Айкен по-прежнему работал с ней, но уже как офицер ВМС, а не как профессор Гарварда.

Когда в июле 1944 года Хоппер приступила к исполнению своих обязанностей, Айкен дал ей копию мемуаров Чарльза Бэббиджа, повел показать Mark I и сказал: “Это вычислительная машина”. Некоторое время Хоппер просто молча на нее смотрела. “Все это выглядело как груда механизмов, издающих страшный грохот, – вспоминала она, – все было оголено, открыто и очень шумно”5. Понимая, что ей придется полностью в этом разобраться и научиться справляться с машиной, Хоппер ночи напролет изучала чертежи. Ее сильной стороной было умение понять, как перевести реальные задачи на язык математических уравнений (чем она занималась в Вассаре), а затем – в команды, которые машина сможет понять. “Я изучала терминологию, принятую в океанографии, во всех этих делах, связанных с разминированием, детонаторами, взрывателями дистанционного действия, в биомедицине, – рассказывала она. – Мы должны были выучить все их термины для того, чтобы иметь возможность решать их задачи. Я могла говорить о чем-то на сугубо техническом языке, а спустя несколько часов переключиться на совершенно другую лексику, говоря о том же с руководством”. Инновациям необходимы словесные формулировки.

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

– Ты должна написать книгу.

– Я не могу написать книгу, – ответила она. – Я еще ни одной не написала.

– Ну, ты сейчас в армии, – сказал он. – И ты сможешь ее написать6.

В результате появилась пятисотстраничная книга, которая и рассказывала об истории создания компьютера Mark I, и была руководством по программированию на нем7. В первой главе описывались счетные машины, построенные до него, в основном те, которые сконструировали Паскаль, Лейбниц и Бэббидж. На фронтисписе была картинка, изображающая часть разностной машины Бэббиджа, которую Айкен установил в своем кабинете, а в качестве эпиграфа Хоппер взяла фразу из книги Бэббиджа. Она поняла, как в свое время и Ада Лавлейс, что аналитическая машина Бэббиджа обладала особым свойством. И она, и Айкен надеялись, что этим же свойством будет обладать компьютер Mark I /Harvard (и это должно было отличать его от других современных ему компьютеров): как и непостроенная машина Бэббиджа, Mark I Айкена должен был уметь перепрограммироваться на новые инструкции, поскольку получал их с помощью перфокарт.

Каждый вечер Хоппер читала Айкену страницы, написанные за день, и он научил ее простому трюку, используемому хорошими писателями. Она рассказывала: “Он подсказал, что, если ты запинаешься, пытаясь прочитать какое-то место вслух, фразу лучше исправить. Каждый день я должна была прочитать ему пять страниц, которые я за этот день написала”8. Ее тексты стали простыми, емкими и понятными. Тесное сотрудничество Хоппер и Айкена напоминает нам сотрудничество Ады Лавлейс и Бэббиджа. Чем больше Хоппер узнавала об Аде Лавлейс, тем больше отождествляла себя с ней. “Она впервые написала цикл в программе, – говорила Хоппер. – И я никогда этого не забуду. Никто из нас никогда не забудет”9.

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

Но вскоре после того, как книга Хоппер была закончена, ведущие сотрудники IBM написали собственную историю создания компьютера Mark I, в которой доказывалось, что главный вклад в строительство данной машины принадлежал команде IBM, работавшей в городе Эндикотте, штат Нью-Йорк. “Интересам корпорации IBM больше всего отвечала не история индивидуальных открытий, а история успешной работы организации, – писал историк Курт Байер в своей книге о Грейс Хоппер. – Местом, где зарождались технологические инновации, по мнению IBM, была именно корпорация. Миф о гениальном изобретателе-одиночке, работающем в лаборатории или подвале, был заменен на реальную историю работы команды безликих инженеров корпорации, постепенно усовершенствовавших машину”10. В версии истории от IBM в компьютер Mark I было внесено множество мелких новаторских решений, например счетчик, использующий храповый механизм, а также двухплатформенное устройство подачи карт. Как утверждают авторы книги IBM, эти новшества были внесены в компьютер командой малоизвестных инженеров, работавших совместно в Эндикотте[19]19
  До 2014 г. в экспозиции и поясняющих надписях, касающихся компьютера Mark I, представленных в научном центре Гарварда, не было никаких упоминаний о Грейс Хоппер. Там вообще не было ни одной фотографии женщин. Но в 2014 г. экспозицию изменили, чтобы отметить и роль Хоппер, и роль других женщин-программисток. – Прим. автора.


[Закрыть]
.

Различие между версиями Хоппер и IBM на самом деле глубже, чем вопрос о том, кому принадлежат главные заслуги. Оно демонстрирует противоположные взгляды на историю возникновения инноваций. В некоторых исследованиях по истории науки и техники подчеркивается, как это сделала Хоппер, роль изобретателей, совершающих инновационные прорывы. В других исследованиях подчеркивается роль команд и организаций, таких как Bell Labs и IBM, сумевших организовать коллективную работу на своих предприятиях. При втором подходе авторы пытаются показать: то, что может показаться творческим прорывом, моментом озарения, на самом деле является результатом эволюционного процесса, который возникает в тот момент, когда идеи, концепции, технологии и инженерные методы созревают одновременно. Ни одна из точек зрения на технологическим прогресс не является единственно правильной. Большинство великих инноваций цифровой эпохи возникали при взаимодействии творческих личностей (Мокли, Тьюринга, фон Неймана, Айкена) с командами, которые сумели реализовать их идеи.

Партнером Хоппер в работе с компьютером Mark I был Ричард Блох, математик из Гарварда, в студенческие годы игравший на флейте в любительской университетской музыкальной группе, а потом служивший в ВМС США. Прапорщик Блох начал работать с Айкеном за три месяца до Хоппер, и когда она появилась, взял ее под свою опеку. Он вспоминал: “Я помню, как мы сидели до глубокой ночи, разбираясь, как работает эта штуковина и как ее программировать”. Они с Хоппер сменяли друг друга каждые двенадцать часов, подстраиваясь к требованиям машины и ее неуравновешенного командира – Айкена. “Иногда он появлялся в четыре утра, – рассказывал Блох, – и спрашивал: «Мы считаем?» Он очень нервничал, когда машина останавливалась”11.

Подход Хоппер к программированию был систематическим. Она разбивала все физические проблемы или математические уравнения на мелкие арифметические шаги. “Вы просто говорите компьютеру, что делать, шаг за шагом, – поясняла она. – Нужно взять это число, и добавить его к тому числу, и положить результат туда-то. Теперь взять это число, и умножить его на то число, и положить его туда-то”12. Когда программа уже была набита на ленту и наставал момент ее проверять, команда, обслуживающая Mark I, сначала в шутку, ставшую потом ритуалом, вытаскивала молитвенный коврик, становилась на него лицом на восток и молилась, чтобы их работа оказалась успешной.

Иногда по ночам Блох слегка переделывал что-то в аппаратуре компьютера, что создавало проблемы для компьютерных программ, которые писала Хоппер. Она была человеком несдержанным, бывало, использовала крепкие словечки, и отборная брань, которой она поливала остолбеневшего долговязого Блоха, стала предвестником той смеси вражды и товарищества, которая возникнет между разработчиками аппаратных средств и программного обеспечения. “Каждый раз, когда я запускаю программу, он приходит ночью и меняет схемы в компьютере, а на следующее утро программа перестает работать, – сетовала она. – К тому же утром он уже дома, и спит, и не может рассказать мне, что переделал”. Как в таких случаях говорил Блох: “Разверзались ворота ада. Айкен не умел воспринимать это с юмором”13.

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

На самом деле не у импульсивной Грейс Хоппер, а у спокойного Блоха были более сложные отношения с командиром Айкеном. “У Дика всегда возникали неприятности, – вспоминала Хоппер. – Я пробовала объяснить ему, что Айкен похож на компьютер. Он сконструирован определенным образом, и если собираешься работать с ним, ты должен понимать, как он собран”15. Айкен, который сначала был недоволен присутствием женщины в его подразделении, вскоре сделал Хоппер не только главным программистом, но и своим первым заместителем. Много лет спустя он вспоминал с благодарностью ее вклад в рождение компьютерного программирования. Как он говорил, “Грейс была хорошим парнем”16.

Среди методов программирования, которые Хоппер в Гарварде довела до совершенства, было создание подпрограмм – частей программы, предназначенных для выполнения конкретных задач. Подпрограммы загружаются один раз, но их можно вызывать всякий раз, когда это необходимо, – в любой момент выполнения основной программы. “Подпрограмма – это четко определенная, удобно закодированная, часто повторяемая программа, – писала она. – В компьютере Mark I / Harvard имелись подпрограммы для вычисления sin х, log10 х, и 10x, каждая из которых могла вызываться одним операционным кодом”17. Это была та самая концепция, которую Ада Лавлейс впервые описала в своих “Примечаниях” к статье об аналитической машине. Хоппер собирала библиотеку этих подпрограмм, которая все время пополнялась. В процессе работы над программированием компьютера Mark I она разработала концепцию компилятора – устройства для перевода исходного кода на машинный язык, используемый различными компьютерными процессорами, что в конечном итоге облегчило написание одной и той же программы для множества машин.

Кроме того, ее команда внедрила общепринятые в настоящее время термины bug (в переводе – насекомое), означающий ошибку в программе, и debugging (устранение насекомых), означающий отладку программы. Вторая версия машины – компьютер Mark II /Harvard был установлен в здании, где на окнах не было противомоскитных сеток. Однажды ночью машина вышла из строя, и команда стала искать причину проблемы. Внутри они нашли разбившуюся и застрявшую в одном из электромеханических реле ночную бабочку с размахом крыльев в десять сантиметров. Она была извлечена и приклеена в журнал записей скотчем. Запись гласила: “Панель F (бабочка) в реле. Первая конкретная причина программной ошибки найдена”18. С тех пор поиски глюков, то есть отладку программы, называли “поиском багов в машине”.

К 1945 году, во многом благодаря Хоппер, компьютер Mark I / Harvard стал самым легко программируемым в мире большим компьютером. Он мог переключаться с одной задачи на другую, просто получив новые инструкции с бумажной перфоленты, и не требовал аппаратной переделки или перепайки кабелей. Тем не менее эта замечательная особенность в значительной степени осталась незамеченной и тогда, и в истории компьютеров, поскольку в компьютере Mark I (и даже в его преемнике, Mark II, построенном в 1947 году) использовались медленные электромеханические реле, а не электронные компоненты, в первую очередь электронные лампы. “К тому времени, когда кто-то что-то узнал о нем, – рассказывала Хоппер о компьютере Mark II, – он уже был малоэффективен, и все переходили на электронику”19.


    Ваша оценка произведения:

Популярные книги за неделю