Вы здесь

Инноваторы. Как несколько гениев, хакеров и гиков совершили цифровую революцию. Глава 3. Программирование (Уолтер Айзексон, 2014)

Глава 3

Программирование

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

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

Грейс Хоппер

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

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

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

Выйдя замуж за профессора сравнительной литературы Винсента Хоппера, Грейс поступила на работу в Вассар и стала преподавать математику. В отличие от большинства преподавателей этого предмета она требовала, чтобы ее ученики умели письменно излагать мысли. Свой курс по теории вероятности она начинала с лекции об одной из своих любимых математических формул[18] и просила учеников написать эссе о ней. Этим она добивалась ясности в изложении и стиле. “Я могла испещрить их тексты [эссе] замечаниями, и поднимался бунт, они могли возмущаться, что это курс математики, а не английского, – вспоминала она. – Тогда я объясняла им, что нет смысла пытаться изучать математику, если они не могут общаться с другими людьми”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].

Различие между версиями Хоппер и 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.

Инноваторы в области компьютерных технологий, как и другие первопроходцы, могут оказаться в отстающих, если зациклятся на своих решениях. Те же черты характера, которые делают их изобретательными, например упрямство и умение сконцентрироваться, могут сделать их невосприимчивыми к новым идеям. Стив Джобс был известен своим упрямством и целеустремленностью, но он же поражал и сбивал с толку своих коллег, когда внезапно менял подход, поняв, что теперь необходимо направить мысли в другом направлении. Айкену не хватало гибкости. Он не был достаточно гибким, чтобы в нужный момент исполнить пируэт. Он инстинктивно вел себя как капитан корабля, наделенный единоличной властью, поэтому у его экипажа не было привычки свободно выдвигать новые идеи, как это было в команде Мокли и Эккерта в Пенне (Пенсильванском университете). Кроме того, Айкен ставил на первое место надежность, а не скорость. Поэтому он держался за использование проверенных временем и надежных электромеханических реле даже после того, как инженеры из Пенна и Блетчли-Парка поняли, что будущее за электронными лампами. Его Mark I мог выполнять только около трех операций в секунду, в то время как ENIAC, строившийся в Пенне, мог выполнять за то же время пять тысяч операций.

Когда Айкен поехал в Пенн посмотреть на ENIAC и прослушать лекции, был написан отчет, где об этой встрече сказано: “Айкен был зациклен на своем собственном подходе и, кажется, не понял значения новых электронных машин”20. То же самое можно отнести и к Хоппер, посетившей ENIAC в 1945 году. Ей казалось, что Mark I лучше, поскольку его было легче программировать. В ENIAC, сказала она, “вы вставляете разные блоки и по сути конструируете новый компьютер для каждой задачи, а мы привыкли к концепции программирования и управления компьютером с помощью нашей программы”21. Для того чтобы перепрограммировать ENIAC, может потребоваться целый день, и это убивало его преимущество в скорости обработки, если только не нужно было все время решать одну и ту же задачу.

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

Женщины и ENIAC

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

Для этого требовалось вручную переключить кабели ENIAC и сбросить переключатели в начальное положение. Сначала программирование казалось рутинным занятием, возможно, даже черновой работой, и может быть, поэтому она была поручена женщинам, которым в то время не очень просто было стать инженерами. Но женщины, программировавшие ENIAC, вскоре доказали (и мужчины это позже поняли), что программирование компьютера могло быть не менее важным, чем его конструирование.

История Джин Дженнингс является типичной для женщин-программисток, работавших с первыми компьютерами22. Она родилась на ферме, расположенной на окраине поселка Алантус-Гроув в штате Миссури (население 104 человека), в семье, в которой практически не было денег, но очень ценилось образование. Ее отец преподавал в школе, помещавшейся в одной комнате, и Джин считалась лучшей в школе подающей в бейсболе и единственной девчонкой в футбольной команде. Ее мать, хотя и бросила школу в восьмом классе, помогала обучать детей алгебре и геометрии. Джин была шестым ребенком из семи детей, и все они пошли учиться в колледж. В то время это было реально, поскольку государственные власти ценили образование и понимали экономическую и социальную ценность его доступности. Она училась в Северо-Западном Миссурийском государственном педагогическом колледже в Мэривилле, где обучение стоило 76 долларов в год.

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

Когда она окончила колледж в январе 1945 года, ее преподаватель по математическому анализу показал ей объявление: в Пенсильванском университете требовались женщины-математики. Женщины там выполняли функции “компьютеров”, то есть считали рутинные математические задачи – в основном рассчитывали артиллерийские траектории и составляли баллистические таблицы для армии. В одном объявлении было написано:

Требуются женщины с высшим математическим образованием… Женщинам предлагается работа в научной и инженерной областях, на которую раньше предпочитали брать мужчин. Сейчас пришло время для вас подумать о работе в области науки и техники. Вы увидите, что здесь, как сейчас везде, актуален лозунг “Требуются женщины!”23

Дженнингс, которая никогда не выезжала за пределы штата Миссури, послала заявление. Когда она получила телеграмму о том, что ее приняли, то села в полночь на поезд железнодорожной компании Wabash, идущий на восток, и прибыла в Пенн сорок часов спустя. Она вспоминала: “Не стоит и говорить, что они были поражены тем, что я оказалась там так быстро”24.

Когда двадцатилетняя Дженнингс появилась в Пенне в марте 1945 года, там уже работало около семидесяти женщин, пользующихся настольными счетными машинками и испещрявших цифрами огромные листы бумаги. Жена капитана Германа Голдстайна Адель была ответственной за вербовку и подготовку кадров. “Никогда не забуду, как я впервые пришла на лекцию Адели, – рассказывала Дженнингс. – Она вошла в класс с сигаретой в углу рта, подошла к столу, забросила одну ногу на него и заговорила с отчетливым бруклинским акцентом”. Для Дженнингс, которая в детстве была сорванцом и вскипала каждый раз, когда сталкивалась с бесчисленными случаями сексизма, это был опыт, перевернувший ее представления о жизни. “Я поняла, что уехала далеко от Мэривилля, где женщинам приходилось прятаться в сараях, чтобы тайком покурить”25.

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

Когда она пришла на интервью, Голдстайн спросил ее, что она знает об электричестве. Она вспомнила закон Ома, который определяет, как электрический ток связан с напряжением и сопротивлением, и сказала, что “прослушала курс физики и знает, что U равно IR”. “Нет-нет, – сказал Голдстайн, – меня не это заботит, я спрашиваю, не боитесь ли вы электричества?”26 Работа состояла в том числе в переключении проводов и управлении переключателями, пояснил он. Она сказала, что не боится. Во время интервью пришла Адель Голдстайн, взглянула на нее и кивнула. Дженнингс была принята.

Кроме Джин Дженнингс (позже Бартик), были взяты на работу Мэрлин Весков (позже Мельцер), Рут Лихтерман (позже Тейтель-баум), Бетти Снайдер (позже Холбертон), Фрэнсис Байлас (позже Спенс) и Кей Макналти (которая впоследствии вышла замуж за Джона Мокли). Они были типичной командой, оказавшейся вместе благодаря войне: Весков и Лихтерман были еврейками, Снайдер – из квакеров, Макналти – католичкой ирландского происхождения, а Дженнингс принадлежала к церкви, отколовшейся от протестантской. “Мы замечательно проводили время вместе, в основном потому, что никто из нас никогда раньше не имел близких контактов с кем-либо принадлежащим к другой религии, – вспоминала Дженнингс. – У нас было несколько важных споров о религиозных догмах и верованиях. Несмотря на наши различия или, возможно, благодаря им, мы очень полюбили друг друга”27.

Летом 1945 года шесть женщин были направлены на Абердинский испытательный полигон, где их учили работать с перфокартами IBM и подключать коммутационные панели. “Там у нас происходили длинные споры о религии, наших семьях, политике и нашей работе, – вспоминала Макналти. – Нам всегда было что сказать друг другу”28. Дженнингс стала лидером в группе. Она вспоминала: “Мы работали вместе, жили вместе, ели вместе и засиживались часами, обсуждая все на свете”29. Поскольку все они были свободными, а вокруг было много одиноких солдат, в кабинках клуба офицеров, где распивались коктейли “Том Коллинз”, вспыхнуло несколько ярких романов. Весков нашла себе морпеха, “высокого и довольно красивого”. Дженнингс встретила сержанта по имени Пит, который был “привлекательным, но не очень красивым”. Он был родом из Миссисипи, а Дженнингс откровенно выражала свое неприятие расовой сегрегации: “Пит сказал мне однажды, что никогда не повезет меня в Билокси, потому что я так откровенно высказываюсь по вопросам дискриминации, что меня там убьют”30.

После шестинедельных тренировок шесть девушек-программисток, отправив своих приятелей в архивы памяти, вернулись в Пенн, где им дали диаграммы размером с плакат и схемы ENIAC. Макналти рассказывала: “Некто вручил нам целую пачку чертежей (это были электрические схемы всех блоков) и сказал: «Нужно выяснить, как работает машина, а затем научиться ее программировать»”31. Для этого потребовалось проанализировать дифференциальные уравнения, а затем понять, как перекинуть кабели к нужным электронным схемам. “Самое большое преимущество изучения компьютера ENIAC по диаграммам состояло в том, что мы начали понимать, что можно на нем сделать, а что нельзя, – говорила Дженнингс. – В результате мы могли локализовать проблему, почти наверняка знали, какая именно электронная лампа барахлит”. Они со Снайдер разработали систему, позволяющую обнаружить, какая из восемнадцати тысяч электронных ламп сгорела. “Так как мы знали, как система работает, мы научились диагностировать проблемы так же, если не лучше, чем инженеры. Должна сказать вам, что инженерам это нравилось. Они могли переложить отладку на нас”32.

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

Однажды Дженнингс и Снайдер сидели в реквизированном ими двухэтажном учебном помещении и рассматривали листы, содержащие диаграммы множества блоков ENIAC, когда в класс вошел человек, инспектирующий некоторые конструкции. “Привет, меня зовут Джон Мокли, – сказал он, – я просто проверял, не провалился ли потолок”. Ни одна из женщин не встречалась до этого с изобретателем ENIAC, но они ни в малейшей степени не смутились и не испугались. “Рады вас видеть, – заявила Дженнингс, – расскажите, как этот проклятый сумматор работает”. Мокли подробно ответил на этот, а потом и на другие вопросы. Когда они закончили, он сказал им: “Ну вот, мой кабинет находится по соседству. Так что в любое время, когда я там, вы можете прийти и задать мне вопрос”.

Они и заходили почти каждый день. Если верить Дженнингс, “он был чудесным учителем”. Он помог женщинам понять, как много других задач (кроме расчета артиллерийских траекторий) ENIAC сможет со временем решать. Он знал, что для того, чтобы сделать его настоящим компьютером общего назначения, он должен вдохновить программистов, которые могли заставить аппаратное устройство выполнять различные задачи. “Он всегда старался заставить нас думать о других проблемах, – рассказывала Дженнингс. – Он всегда просил нас найти обратную матрицу или что-то в таком же духе”34.

Женщины-программистки придумали, как сделать подпрограммы для ENIAC, примерно в то же время, что и Хоппер в Гарварде. Они боялись, что логические схемы не настолько мощны, чтобы просчитать некоторые траектории. Придумала решение Макналти. “О, я знаю, я знаю, я знаю, – возбужденно воскликнула она однажды. – Мы можем использовать главную программу для повторения части программы”. Они попытались, и это сработало.

“Мы начали обдумывать, как нам написать подпрограммы, вложенные подпрограммы и все такое, – вспоминала Дженнингс. – Это было очень полезно для задач по расчету траекторий, потому что идея состояла в том, чтобы повторять не всю программу, а только ее куски. Для этого нужно было так составить основную программу, чтобы она реализовала это. После того как вы научились делать это, вы понимаете, как составить свою программу в модульном виде. Разработка подпрограмм и модульной организации основной программы были самыми важными этапами в освоении программирования”35.

Джин Дженнингс Бартик скончалась в 2011 году, а незадолго до смерти с гордостью рассказывала, что все программисты, участвовавшие в создании первого компьютера общего назначения, были женщинами: “Несмотря на то, что мы достигли совершеннолетия в то время, когда карьерные возможности женщин были, как правило, довольно ограниченными, мы приняли участие в становлении компьютерной эры”. Это произошло потому, что все-таки многие женщины тогда учились математике и их навыки были востребованы. Была также и забавная причина: парни, с детства помешанные на игрушечных машинках, считали, что именно сборка оборудования была самой важной задачей и, следовательно, мужской работой. “Американская наука и техника была еще более сексистской, чем сегодня, – говорила Дженнингс. – Если бы руководители ENIAC знали, насколько важным окажется программирование для функционирования ЭВМ и насколько сложным оно окажется, они, возможно, трижды подумали бы, прежде чем отдать такую важную роль женщинам”36.

Сохранение программ

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

Но больше чем за год до окончания создания ENIAC, уже в начале 1944 года, Мокли и Эккерт поняли, что существует хороший способ сделать компьютеры легко перепрограммируемыми: хранить программы в памяти компьютера, а не загружать их каждый раз заново. Они чувствовали, что это было бы следующим большим шагом вперед в развитии компьютеров. Структура машины с “сохраняемой программой” предполагает, что постановки задач для компьютера могут быть изменены практически мгновенно, без изменения вручную конфигурации кабелей и переключателей38.

Для сохранения программы внутри машины нужно иметь большой объем памяти. Эккерт перебрал много способов для этого. В докладной записке, составленной в январе 1944 года, он написал: “Программы можно сохранять временно, используя запись на дисках из сплавов или постоянно – на протравленных дисках”39. Поскольку такие диски еще не были сделаны, в следующей версии ENIAC он предложил использовать вместо этого более дешевый метод хранения, названный памятью на акустической линии задержки. Она была впервые сконструирована в Bell Labs инженером Уильямом Шокли (о котором ниже будет рассказано гораздо подробнее) и усовершенствована в Массачусетском технологическом институте. Принцип работы акустической линии задержки состоял в сохранении данных в виде импульсов в длинной трубке, заполненной тяжелой, вязкой жидкостью, такой как ртуть. На одном конце трубки электрический сигнал, несущий информацию, в кварцевом преобразователе превращался в волны, какое-то время распространяющиеся в трубке вперед и назад. Поскольку импульсы затухают, их с помощью усилителей восстанавливают. Когда приходит время извлечь данные, импульсы в кварцевом преобразователе опять превращаются в электрические сигналы, и цикл повторяется. В каждой такой трубке могло храниться примерно тысяча бит данных при стоимости, равной одной сотой от стоимости схемы, собранной на электронных лампах. В докладной записке, составленной летом 1944 года Эккертом и Мокли, они предложили следующее поколение компьютеров – преемников ENIAC – снабдить стеллажами с этими линиями задержки на ртутных трубках и хранить в них как исходные данные, так и основную информацию по программам в цифровом виде.

Джон фон Нейман

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

Фон Нейман родился в зажиточной еврейской семье в Будапеште в 1903 году в благополучное время, когда в Австро-Венгерской империи были отменены законы, ограничивающие права евреев. Император Франц Иосиф в 1913 году наградил банкира Макса Неймана наследуемым дворянским титулом за “заслуги в финансовой сфере”, таким образом семья стала назваться маргиттаи Нейманами, а по-немецки – фон Нейманами. Янош (в детстве его называли Янчи, а затем – в Америке – Джоном или Джонни) был старшим из трех братьев, и они все после смерти отца перешли в католичество (как один из них признался – “для удобства”)41.

Фон Нейман был еще одним первооткрывателем, чьи интересы лежали на пересечении гуманитарных и естественных наук.

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

Существует огромное количество историй о многочисленных талантах молодого фон Неймана, и некоторые из них, вероятно, правдивы. В возрасте шести лет, как позже рассказывали, он перебрасывался с отцом шутками на древнегреческом и мог в уме разделить два восьмизначных числа. На вечеринках он проделывал фокус – запоминал страницу из телефонной книги и называл в обратном порядке имена и номера. Он мог воспроизвести дословно прочитанные страницы из романов или статей на любом из пяти языков. “Если раса людей со сверхчеловеческими мыслительными способностями когда-либо возникнет, – сказал как-то разработчик водородной бомбы Эдвард Теллер, – принадлежащие ей особи будут напоминать Джонни фон Неймана”43.

Кроме школы, он занимался с репетиторами математикой и языками и в пятнадцать лет полностью овладел высшей математикой. Когда Коммунистическая партия во главе с Белой Куном в 1919 году на короткое время взяла власть в Венгрии, занятия фон Неймана были перенесены в Вену и на курорт на Адриатическом море, а в нем выработалось стойкое отвращение к коммунизму. Он изучал химию в Швейцарском федеральном технологическом институте (Политехникуме) в Цюрихе (откуда уже ушел Эйнштейн), а математику – и в Берлине, и в Будапеште, и в 1926 году получил докторскую степень. В 1930 году он отправился в Принстонский университет изучать квантовую физику и остался там после того, как был назначен (наряду с Эйнштейном и Гёделем) одним из первых шести профессоров только что образованного Института перспективных исследований44.

Фон Нейман и Тьюринг, которые встретились в Принстоне, считаются парой великих теоретиков, разработавших концепцию компьютера общего назначения, но в личном плане и по темпераменту они были полными противоположностями. Тьюринг вел спартанский образ жизни, жил в пансионах и дешевых гостиницах и был погружен в себя. Фон Нейман же был элегантным бонвиваном, и они с женой один-два раза в неделю устраивали блестящие приемы в своем огромном доме в Принстоне. Тьюринг любил бегать на длинные дистанции, а про фон Неймана шутили, что на свете очень мало мыслей, никогда не приходивших ему в голову, но идея бега на длинные расстояния (впрочем, и на короткие тоже) была среди них. Мать Тьюринга как-то сказала о своем сыне: “В одежде и привычках он обычно был неряшлив”. Фон Нейман, наоборот, почти всегда носил костюм-тройку, в том числе в поездке на осле на дно Большого каньона. Даже будучи студентом, он так хорошо одевался, что, как рассказывали, при первой встрече с ним математик Давид Гильберт задал только один вопрос: “Кто его портной?”45

Фон Нейман любил на своих приемах рассказывать анекдоты и читать шуточные стихи на разных языках, а ел так много, что его жена однажды сказала, что он может сосчитать все, кроме съеденных калорий. Он безрассудно водил машину, иногда попадал в аварии и любил покупать шикарные новые “кадиллаки”. Историк науки Джордж Дайсон писал: “По крайней мере раз в год он приобретал новый автомобиль, независимо от того, пострадал ли в аварии предыдущий”46.

В конце 1930-х годов, работая в Институте, фон Нейман заинтересовался способами математического моделирования взрывных ударных волн. Это привело к тому, что в 1943 году он стал участником Манхэттенского проекта, и ему пришлось совершать частые поездки на секретные объекты Лос-Аламоса и Нью-Мексико, где разрабатывалось атомное оружие. Поскольку количества урана-235 было недостаточно, чтобы построить больше одной бомбы, ученые в Лос-Аламосе попытались создать бомбу, в которой бы использовался плутоний-239. Фон Нейман сосредоточился на способах построения взрывных линз, которые бы сжимали плутониевое ядро бомбы для достижения критической массы[20].

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

Летом 1944 года эта проблема привела его в Bell Labs, и он стал изучать обновленную версию калькулятора комплексных чисел Джорджа Стибица. В последней версии имелось нововведение, которое произвело на него особенное впечатление его: на той же перфорированной ленте, где были набиты закодированные инструкции для каждой задачи, рядом с ними помещались и исходные данные. Фон Нейман провел какое-то время и в Гарварде, пытаясь выяснить, можно ли использовать компьютер Mark I Говарда Айкена для расчетов бомбы. Все лето и осень того года он перемещался на поезде между Гарвардом, Принстоном, Bell Labs и Абердином, исполняя роль пчелки, прямо и перекрестно опыляющей различные команды идеями, которые возникали в его голове. Так же как Джон Мокли ездил повсюду, подбирая идеи, которые в результате привели к созданию первого работающего электронного компьютера, фон Нейман курсировал между лабораториями, собирая воедино элементы и понятия, которые стали потом частью архитектуры компьютера с сохраняемыми программами.

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

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

Проблема, с которой фон Нейман столкнулся в Гарварде, состояла в том, что Mark I с его электромеханическими переключателями считал мучительно медленно. Расчеты атомной бомбы заняли бы несколько месяцев. Хотя ввод с помощью бумажной ленты делал процесс перепрограммирования компьютера более удобным, каждый раз, когда возникала команда перехода к подпрограмме, необходимо было вручную менять ленту. Фон Нейман пришел к убеждению, что единственное решение – создать компьютер, который работал бы на электронных скоростях и мог хранить и изменять программы с помощью внутренней памяти.

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

Фон Нейман в Пенне

Капитан Герман Голдстайн, военный связист, который работал с Мокли и Эккертом на ENIAC, в это же время случайно оказался в Абердине на той же платформе, что и фон Нейман, в ожидании поезда на север. Они никогда раньше не встречались, но Голдстайн узнал его мгновенно. Встретив фон Неймана – знаменитость в мире математики – он пришел в возбуждение, поскольку всегда преклонялся перед выдающимися личностями. “Было большим нахальством с моей стороны подойти к этому всемирно известному человеку, представиться и начать разговор, – вспоминал он. – К счастью для меня, фон Нейман оказался милым и дружелюбным, он всегда всячески старался сделать так, чтобы люди чувствовали себя спокойно”. Беседа стала еще оживленней, когда фон Нейман узнал, чем занимается Голдстайн. “Когда фон Нейман понял, что я был связан с разработкой электронного компьютера, способного проделывать 333 умножения в секунду, тональность нашего разговора изменилась, из легкой и шутливой она превратилась в ту, что бывает на устном экзамене при соискании докторской степени по математике”50.

По приглашению Голдстайна несколько дней спустя фон Нейман посетил Пенн, чтобы взглянуть на ENIAC в процессе его строительства. Пресперу Эккерту было любопытно познакомиться со знаменитым математиком, и он подумал, что если его первым вопросом будет вопрос о логической структуре машины, то он “действительно гений”. Как раз таким на самом деле и оказался первый вопрос, заданный фон Нейманом, и он таким образом заработал уважение Эккерта51.

ENIAC мог решить менее чем за час дифференциальное уравнение в частных производных, которое Mark I /Harvard решал бы около восьмидесяти часов. Это впечатлило фон Неймана. Тем не менее перепрограммирование ENIAC на другие задачи могло занять несколько часов, и фон Нейман понял, насколько это серьезный недостаток, поскольку в этот момент нужно было решать кучу разнородных проблем. Весь 1944 год Мокли и Эккерт пытались найти способ хранения программ внутри машины. Прибытие фон Неймана, набитого идеями Гарварда, Bell Labs и других мест, подняло на более высокий уровень обсуждение конструкции компьютера с сохраненными программами.

Фон Нейман, который стал консультантом команды ENIAC, выдвинул идею о том, что компьютерная программа должна быть сохранена в той же памяти, что и исходные данные, и тогда программу можно будет легко модифицировать во время работы. Его деятельность в команде Пенна началась с первой недели сентября 1944 года, когда Мокли и Эккерт в деталях объяснили ему устройство машины и поделились своими мыслями о конструкции следующей версии, в которой будет “одно устройство хранения с адресуемыми ячейками”, которое будет служить в качестве устройства для хранения и исходных данных, и команд программы. На той же неделе Голдстайн изложил эту идею в письме к своему армейскому командиру: “Мы предлагаем централизованное программируемое устройство, в котором стандартные программы хранятся в закодированном виде в тех же типах устройств хранения информации, которые были предложены ранее”52.

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

Фон Нейман был открытым человеком, но его интеллектуальное превосходство подавляло людей. Когда он утверждал что-то, редко кто отваживался возразить. Но Дженнингс иногда решалась. Однажды она поспорила с одним из его утверждений, и все в зале посмотрели на нее с удивлением. Но фон Нейман сделал паузу, склонил голову, а затем согласился с ее точкой зрения. Он умел хорошо слушать и к тому же мастерски умел притворяться застенчивым, что располагало к нему людей54. “В нем было удивительное сочетание черт характера блестящего человека, который осознает, что он выдающийся, и удивительной скромности и застенчивости, проявлявшихся при изложении им своих идей другим людям, – вспоминала Дженнингс. – Он был очень беспокойным, все время расхаживал по комнате, но когда он рассказывал о своих идеях, казалось, будто он извиняется за несогласие с вами или будто обдумывает лучшую идею”.

Фон Нейман был особенно силен в разработке фундаментальных основ программирования, которое было все еще плохо определенным ремеслом, не очень изменившимся за век – с тех пор, как Ада Лавлейс описала последовательность операций для генерации чисел Бернулли на аналитической машине. Он понял, что создание элегантного набора инструкций – алгоритма – требовало как строгой логики, так и точности выражения. “Он очень тщательно разъяснял, почему нужно написать данную конкретную команду или почему мы могли бы обойтись без команд, – рассказывала Дженнингс. – Тогда я впервые осознала важность командных кодов, логики, на основании которой они строятся, и элементов, которые должны входить в полный набор команд. Я заметила, что фон Нейман, как и другие гении, обладал способностью выбрать в каждой конкретной проблеме нечто определяющее, то, что действительно было самым важным”55. В этом проявлялся его мощный талант, побуждавший его докапываться до сути каждой новой идеи.

Фон Нейман понимал, что они не просто усовершенствуют ENIAC для быстрого перепрограммирования. Они выполняли более важную задачу – воплощали идею Ады о создании машины, которая могла выполнять любую логическую задачу, заданную набором любых символов. “Компьютер с сохраняемыми программами, замысел которого принадлежал Алану Тьюрингу, а реализация – Джону фон Нейману, сломал различие между числами, которые описывают данные, и числами, которые описывают программы, – писал Джордж Дайсон. – Наша Вселенная уже никогда не будет прежней”56.

Кроме того, фон Нейман быстрее, чем его коллеги, понял важность объединения данных и программных команд в одном и том же устройстве памяти. Память может быть стираемой – той, что мы сейчас называем памятью с оперативной записью и считыванием. Это означает, что сохраненные команды могут быть изменены не только в конце цикла, но в любой момент работы программы. Компьютер сам может изменить свою программу, основываясь на полученных результатах. Для облегчения этой процедуры Фон Нейман придумал язык программирования с переменным адресом ячейки памяти, который позволял легко менять команды во время выполнения программы57.

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

В последующие годы в патентных разбирательствах, конференциях, книгах и противоречащих друг другу исторических документах возникали дебаты по поводу того, кто имеет больше прав на идеи, которые родились в 1944-м и в начале 1945 года и легли в основу компьютера с сохраняемой программой. Например, рассказанное выше говорит о том, что заслуга выдвижения концепции сохраняемой программы в первую очередь принадлежит Эккерту и Мокли. А заслуга фон Неймана в том, что он осознал важность способности компьютера изменять сохраненную в нем программу в процессе работы, а также в создании программ с переменным адресом для реализации этого. Но на самом деле рождение инноваций в Пенне является еще одним примером совместного творчества, и это более важно, чем разборки по поводу авторства тех или иных идей. Фон Нейман, Эккерт, Мокли, Голдстайн, Дженнингс и множество других разработчиков – все сообща обсуждали идеи, выпытывали нужные им сведения у инженеров, электронщиков, ученых-материаловедов и программистов.


Вверху: Джон фон Нейман (1903–1957), 1954 г.


Слева: Герман Голдстайн (1913–2004), ок. 1944 г.


Преспер Эккерт (в центре) и журналист Уолтер Кронкайт с телеканала CBS (справа) рассматривают результаты электронного прогноза президентских выборов, полученных с помощью компьютера UNIVAC, 1952 г.


Большинство из нас когда-нибудь участвовали в мозговых штурмах, в которых рождались творческие идеи. Уже спустя несколько дней разные люди могут по-разному вспоминать о том, кто предложил идею первым. Мы понимаем, что идеи формулируются в основном при постоянном взаимодействии членов группы, а не путем выдвижения совершенно оригинальной концепции кем-то одним. Искры вылетают при трении идей друг о друга, а не падают с ясного неба. Так было и в Bell Labs, и в Лос-Аламосе, и в Блетчли-Парке, и в Пенне. Одним из важнейших талантов фон Неймана, сделавшим его главным в этом коллективном творческом процессе, была его способность расспрашивать, слушать, формулировать и систематизировать чужие идеи, мягко и осторожно вносить свои предложения.

Склонность фон Неймана собирать и обрабатывать идеи, не заботясь о том, чтобы точно указать источник, из которого они появились, оказалась полезной для высевания и удобрения уже посеянных идей, которые стали частью EDVAC. Но иногда это обижало тех, кого больше беспокоило, как оценят их заслуги или признают ли за ними права на интеллектуальную собственность. Фон Нейман как-то раз заявил, что невозможно приписать кому-то одному рождение идей, обсуждавшихся в группе. Рассказывают, что Эккерт, услышав это, отреагировал репликой: “Вы уверены?”58

Преимущества и недостатки подхода фон Неймана проявились в июне 1945 года. После десяти месяцев кипучей работы в Пенне он предложил изложить ее итоги на бумаге. И приступил к этому во время своей долгой поездки на поезде в Лос-Аламос.

В своем рукописном отчете, отправленном в Пенн Голдстайну, фон Нейман в математически компактной форме подробно описал структуру предлагаемого компьютера с запоминаемыми программами и логическое управление им, а также причины, по которым оказалось “заманчивым рассматривать всю память как единый орган”. Когда Эккерт спросил Голдстайна, почему, как ему кажется, фон Нейман единолично составляет документ, основанный на идеях, в развитии которых участвовали и другие, тот успокоил его: “Он просто пытается уяснить эти вещи для себя самого и делает это в письмах ко мне, чтобы мы могли ответить ему, если он что-то понял неправильно”59.

Фон Нейман оставил пробелы для вставки ссылок на чужие работы, и в действительности в его тексте никогда не использовалась аббревиатура EDVAC. Но когда Голдстайн отдал текст (насчитывавший уже 101 страницу) в печать, он указал в качестве единственного автора своего героя – фон Неймана. На титульной странице Голдстайн написал название “Первый проект отчета о EDVAC Джона фон Неймана”. Для получения двадцати четырех копий документа Голдстайн использовал мимеограф, и в конце июня 1945 года он разослал эти экземпляры по разным местам60.

“Проект отчета” был очень полезным документом, и разработчики последующих компьютеров руководствовались им по крайней мере в течение последующего десятилетия. Решение фон Неймана написать его и позволить Голдстайну распространить отражало открытость академически ориентированных ученых, особенно математиков, которые обычно хотят публиковать в открытой печати и распространять результаты, а не пытаться доказать, что право на интеллектуальную собственность принадлежит им. Своему коллеге фон Нейман объяснил: “Я, безусловно, собираюсь сделать все возможное, чтобы как можно больше результатов этой деятельности оказалось в открытом доступе (с патентной точки зрения)”. Позже он сказал, что, взявшись за написание отчета, преследовал две цели – “прояснить и скоординировать мысли группы, работающей над конструкцией компьютера EDVAC, и помочь усовершенствовать конструкцию высокоскоростных компьютеров”. Кроме того, он сказал, что не пытался присвоить авторство на концепции и никогда не подавал на них патентные заявки61.

Эккерт и Мокли смотрели на это по-другому. “Понимаете, мы под конец стали считать фон Неймана скупщиком чужих идей, а Голдстайна – основным продавцом, – сказал Эккерт позднее. – Фон Нейман крал идеи и пытался сделать вид, что работу в школе Мура [при Пенне] он проделал один”62. Джин Дженнингс согласилась с этим и позже сокрушалась, что Голдстайн “ревностно поддерживал несправедливые претензии фон Неймана и, по сути, помог ему присвоить работу Эккерта, Мокли и остальных членов группы из школы Мура”63.

Что особенно расстроило Мокли и Эккерта, которые пытались запатентовать многие из концепций, лежащие в основе и ENIAC, и будущего EDVAC, так это то, что распространение отчета фон Неймана делало эти концепции открытыми и с юридической точки зрения запатентовать их становилось невозможно. Когда Мокли и Эккерт попытались запатентовать архитектуру компьютера с сохраняемой программой, им было отказано в этом, поскольку (так заключили и армейские юристы, и в конечном итоге суды) отчет фон Неймана был сочтен “предшествовавшей открытой публикацией”, что запрещает выдачу патента.

Эти патентные споры положили начало дискуссии, возникшей в цифровую эру. Должны ли разработчики делиться своей интеллектуальной собственностью, и при любой возможности отправлять ее в общий доступ, и отдавать сообществам, распространяющим программы с открытыми исходными кодами? По этому пути шли в основном разработчики интернета и Web, и это может стимулировать развитие инноваций благодаря быстрому распространению идей и совершенствованию их в процессе краудсорсинга. Или же права на интеллектуальную собственность должны быть защищены и изобретателям нужно разрешить получать прибыль от их собственных идей и инноваций? Этим путем, как правило, следуют разработчики, работающие в области вычислительной техники, электроники и производства полупроводников, и в этом случае у авторов появляются финансовые стимулы, они получают инвестиции, способствующие появлению инноваций, и риски окупаются. В течение семидесяти лет после того, как фон Нейман разместил свой “Проект отчета” по EDVAC в общем доступе и он оказался очень полезным, защите авторских прав в компьютерной области уделялось все больше и больше внимания (с несколькими существенными исключениями). А в 20іі году произошло примечательное событие: Apple и Google потратили больше на судебные иски и выплаты, связанные с патентами, чем на исследования и разработки новых продуктов64.

ENIAC рассекречивают

Даже теперь, когда команда Пенна занималась проектированием EDVAC, они по-прежнему должны были получать разрешение на то, чтобы запустить его предшественник ENIAC и поработать на нем. Шла осень 1945 года.

К тому времени война закончилась. Уже не было никакой необходимости вычислять артиллерийские траектории, но основные задачи, которые считались на ENIAC, были все-таки военными. В какой-то момент из Нью-Мексико, из Лос-Аламосской национальной лаборатории, занимавшейся разработкой атомного оружия, пришло секретное задание. Работавший там физик-теоретик венгерского происхождения Эдвард Теллер предложил конструкцию водородной бомбы, получившей название The Super, где устройство, в котором происходило деление атомных ядер, использовалось для инициирования реакции синтеза. Чтобы определить, как это будет работать, ученым необходимо было рассчитать, какова интенсивность реакции в каждую десятимиллионную долю секунды.

Суть проблемы была строго засекречена, но в Пенн в октябре были переданы гигантские уравнения для решения на ENIAC. Для ввода данных потребовался почти миллион перфокарт, и Дженнингс и некоторые ее коллеги были отправлены в комнату, где стоял ENIAC и где Голдстайн мог руководить процессом его работы. ENIAC решал уравнения, и в процессе расчета выяснилось, что конструкция Теллера не будет работать. Математик Станислав Улам, беженец из Польши, вместе с Теллером (и Клаусом Фуксом, оказавшимся позже русским шпионом), основываясь на результатах ENIAC, стали работать над изменением конструкции водородной бомбы, с тем чтобы в ней могла возникнуть интенсивная термоядерная реакция65.

До тех пор пока это секретное задание не было выполнено, существование ENIAC держали в тайне. Он не демонстрировался широкой публике до 15 февраля 1946 года. На эту дату армейское начальство и Пенн запланировали гала-презентацию ENIAC, предварительно подготовив общественность с помощью нескольких публикаций66. Капитан Голдстайн решил, что кульминационным пунктом должна быть демонстрация расчета траектории ракеты. Поэтому за две недели до события он пригласил Джин Дженнингс и Бетти Снайдер к себе домой, и пока Адель готовила чай, спросил их, могли бы они быстро написать программу для ENIAC и закончить расчет вовремя. Дженнингс заявила: “Мы наверняка сможем это сделать”. Она была взволнована, ведь это позволило бы им получить непосредственный доступ к машине, что случалось редко67. Они приступили к работе, подключив шины запоминающего устройства к нужным блокам и настроив блоки ввода программы.

Мужчины знали, что успех их демонстрации находился в руках этих двух женщин. Мокли пришел в одну из суббот с бутылкой абрикосового бренди, чтобы поддержать их силы. “Это было восхитительно, – вспоминала Дженнингс. – С этого дня я всегда держала бутылку абрикосового бренди в своем шкафу”. Через несколько дней декан инженерной школы принес им бумажный пакет с бутылкой виски и сказал: “Пусть это облегчит вашу работу”. Снайдер и Дженнингс никогда не были большими выпивохами, но подарок был для них важен. Дженнингс вспоминала: “Мы так поняли, насколько важной была эта демонстрация”68.

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

Дженнингс и Снайдер работали до самой пресс-конференции, состоявшейся поздним вечером, пытаясь исправить ошибку, но не могли. В середине ночи они, наконец, сдались и разошлись, поскольку Снайдер нужно было успеть на последний поезд – она жила в пригороде. Но и после того как Снайдер уже легла в постель и заснула, она продолжала искать причину: “Я проснулась посреди ночи, думая, в чем ошибка… Я встала, села на первый утренний поезд, чтобы проверить одно соединение”. Проблема в том, что там была установка в конце цикла типа DO, которая отключала один разряд. Она щелкнула нужным выключателем, и глюк исчез. “Бетти смогла во сне сделать такое сложное логическое заключение, которое большинство людей не могло сделать наяву, – восхищалась Дженнингс позже. – Во время сна она в подсознании распутала узел, который ее сознание было не в состоянии распутать”70.

На демонстрации ENIAC смог за пятнадцать секунд провести расчеты траектории ракеты, на которые расчетчики, даже работая с дифференциальным анализатором, потратили бы несколько недель. Все это выглядело очень впечатляюще. Мокли и Эккерт, как опытные инноваторы, сумели организовать хорошее шоу. Верхушки электронных ламп в сумматорах ENIAC, образующие решетку 10 х 10, виднелись через отверстия в передней панели машины. Слабый свет от неоновых ламп, служивших индикаторами, был едва заметен. Эккерт взял мячи для пинг-понга, разрезал их пополам, написал на них цифры и нацепил на лампы. Когда компьютер начал обработку данных, свет в комнате выключили, и зрители пришли в восторг от мигающих пинг-понговых мячиков – зрелище, которое стало хитом в фильмах и телевизионных шоу. “Когда стала рассчитываться траектория, цифры начали накапливаться в сумматорах и передаваться из одного места в другое, огни начали мигать, как рекламные билборды в Лас-Вегасе, – рассказывала Дженнингс. – Мы сделали то, что хотели. Мы запрограммировали ENIAC”71. Это стоит повторить: они запрограммировали ENIAC.

Открытие ENIAC для общественности удостоилось публикации на первой странице The New York Times под заголовком “Электронный компьютер высвечивает ответы, и это может ускорить развитие технологии”. Эта статья началась так: “Один из главных военных секретов – удивительная машина, с невероятной скоростью решавшая математические задачи, которые считались до сих пор слишком сложными и громоздкими, чтобы за них браться, была представлена публике сегодня вечером военным ведомством”72. Продолжение отчета о демонстрации занимало полный разворот Times. Там были помещены фотографии Мокли, Эккерта и огромного, размером с комнату, ENIAC. Мокли заявил, что с помощью машины можно будет делать более точные прогнозы погоды (его первое увлечение), рассчитывать конструкцию самолетов и “снарядов, летающих со сверхзвуковыми скоростями”. В Associated Press была опубликована даже более восторженная статья о демонстрации, и в ней утверждалось, что “машина поможет найти математический способ улучшения жизни каждого человека”73. Мокли привел пример “улучшения жизни”, заявив, что компьютеры могут в какой-то момент использоваться для снижения стоимости буханки хлеба. Как это будет происходить, он не объяснил, но и это, как и миллионы других подобных предсказаний, в конечном итоге и на самом деле реализовалось.

Позже Дженнингс в традициях Ады Лавлейс жаловалась, что многие газетные сообщения переоценивали возможности ENIAC, называли его “гигантским мозгом”, что подразумевало, что он может думать. “ENIAC не был мозгом ни в каком смысле, – настаивала она. – Он не мог рассуждать, поскольку компьютеры все еще не могут рассуждать, но он мог предоставить людям больше информации, чтобы они использовали ее в своих размышлениях”.

У Дженнингс была еще одна, более личная претензия: “Нас с Бетти на демонстрации не упоминали, и после нее мы были забыты. Нам казалось, что мы играли роли в увлекательном фильме. Мы работали без продыху в течение двух недель, чтобы сделать что-то действительно захватывающее, и внезапно что-то пошло не так, и мы были вычеркнуты из сценария”. Той ночью состоялся ужин при свечах в Хьюстон-холле в Пенне. Зал был заполнен научными светилами, военными чинами и мужчинами, работавшими на ENIAC. Но ни Джин Дженнингс, ни Бетти Снайдер на ужин не пригласили, не было там и других женщин-программисток74. “Бетти и я не были приглашены, – рассказывала Дженнингс, – так что мы были обижены”75. И пока в ту очень холодную февральскую ночь мужчины-разработчики и различные знаменитости праздновали, Дженнингс и Снайдер ехали домой одни.

Первые компьютеры с запоминаемыми программами

Желание Мокли и Эккерта запатентовать то, в изобретении чего они участвовали (и получить вознаграждение за это), поставило в тупик администрацию Пенна, поскольку университет еще не выработал четкой политики по распределению прав на интеллектуальную собственность. Им было позволено подать патентные заявки на ENIAC, но университет настоял, чтобы ему были выданы лицензии без уплаты роялти, а также право на выдачу сублицензий на все элементы конструкции. Кроме того, стороны не смогли договориться о том, кто будет иметь авторские права на инновации по EDVAC. Переговоры шли трудно, и в результате в конце марта 1946 года Мокли и Эккерт покинули Пенн76.

Они организовали компанию в Филадельфии, которая стала называться “Компьютерной корпорацией”, и фактически Эккерт и Мокли стали первопроходцами в деле превращения компьютерных технологий из академической деятельности в коммерческую. (В 1950 году их компания вместе с патентами, которые они позже получили, стала частью компании Remington Rand, превратившейся затем в Sperry Rand, а еще позже в Unisys.) Среди машин, которые они построили, был и UNIVAC, купленный Бюро переписи населения и другими покупателями, в том числе General Electric.

А UNIVAC с его мерцающими лампочками и голливудским обликом стал телезвездой в ночь после выборов 1952 года, когда его показал канал CBS. Уолтер Кронкайт – молодой журналист, ведущий новостных программ на телевидении – сомневался в том, что вычисления огромной машины могут быть столь же ценными, что и экспертные оценки телекорреспондентов, но согласился, что ее вид впечатлит телезрителей. Мокли и Эккерт привлекли к участию в проекте специалиста по статистике из Пенна, и они вместе разработали программу, которая сравнивала первые результаты, полученные с некоторых выборочных участков, с итогами предыдущих выборов. К 8:30 вечера по Восточному побережью, задолго до окончания большинства подсчетов, UNIVAC предсказал с вероятностью 100:1 уверенную победу Дуайта Эйзенхауэра над Эдлаем Стивенсоном. CBS вначале придержал выводы UNIVAC, и Кронкайт сказал своим зрителям, что компьютер еще не закончил расчеты. Однако вечером того же дня, после подсчета голосов, подтвердившего, что Эйзенхауэр наверняка победил, Кронкайт вывел в эфир корреспондента Чарльза Коллингвуда, который признался, что UNIVAC сделал правильный прогноз уже в начале вечера, но CBS не решился пустить его в эфир. UNIVAC стал знаменитостью и непременным участником выборов77.

Эккерт и Мокли не забыли о важной роли женщин-программисток, которые работали с ними в Пенне, хотя их и не пригласили на торжественный ужин после демонстрации ENIAC. Они взяли на работу в свою фирму Бетти Снайдер, ставшую по мужу Бетти Холбертон, и она участвовала в разработке языков COBOL и Fortran. К ним перешла на работу и Джин Дженнингс, вышедшая замуж за инженера Бартика и ставшая Джин Дженнингс Бартик. Мокли хотел взять на работу на фирму и Кей Макналти, но вместо этого предложил ей выйти за него замуж, поскольку к тому времени был вдовцом – его жена утонула. У них родилось пятеро детей, но она продолжала участвовать в разработке программного обеспечения для UNIVAC.

Мокли также пригласил работать на фирму и руководительницу женщин-программисток – Грейс Хоппер. “Он предоставлял людям возможность пробовать разные вещи, – ответила Хоппер, когда ее спросили, почему она дала Мокли уговорить себя поступить в “Компьютерную корпорацию” Эккерта – Мокли. – Он поощрял изобретательство”78. К 1952 году она создала первый в мире работающий компилятор, известный как система A-о, который переводил символические математические команды на машинный язык, что очень упрощало написание программ.

Хоппер умела работать в команде и ценила сотрудничество. Она считала использование открытых кодов необходимым условием развития инноваций и послала свою первоначальную версию компилятора друзьям и знакомым в программистском сообществе, попросив их улучшить его. Этот же открытый метод поиска решений и их координации она использовала, когда была техническим руководителем группы, создававшей COBOL – первый кроссплатформенный стандартизованный деловой язык программирования компьютеров79. Она привыкла к совместной работе и понимала, что программа не должна быть привязанной к определенной машине; она считала, что даже машинам должно быть удобно работать вместе. Это также показало, что она поняла главную тенденцию компьютерной эры: сами компьютеры станут потребительским товаром, а по-настоящему цениться будет именно программирование. До того как появился Билл Гейтс, понимание этого обстоятельства у большинства людей отсутствовало[21].

Фон Нейман презрительно отнесся к меркантильному подходу Эккерта и Мокли. “Эккерт и Мокли – это коммерческая компания с коммерческой патентной политикой, – жаловался он другу. – Мы не можем работать с ними с той же степенью открытости, с какой мы работали бы с академической группой”80. Но при всем своем видимом бескорыстии сам фон Нейман был не прочь заработать деньги на своих идеях. В 1945 году он обсуждал заключение контракта на консультирование с компанией IBM, предоставляющей корпорации права на все его изобретения. Это был вполне юридически чистый контракт. Тем не менее это возмутило Эккерта и Мокли. “Он под шумок продал все наши идеи IBM, – жаловался Эккерт. – Он был лицемерным – говорил одно, а делал другое. Ему нельзя было доверять”81.

После того как Мокли и Эккерт покинули Пенн, Университет быстро утратил свою роль центра инноваций. Фон Нейман тоже ушел оттуда и вернулся в Институт перспективных исследований в Принстоне. Он взял с собой Германа и Адель Голдстайнов, а также ключевых инженеров, таких как Артур Беркс. Герман Голдстайн позже высказал свое мнение о том, почему Пенн перестал быть центром разработки компьютеров: “Возможно, учреждения, как и люди, могут уставать”82. Компьютеры считались инструментом, а не темой для научного исследования. Мало кто из преподавателей понял тогда, что информатика разовьется в академическую дисциплину, еще более важную, чем электроинженерия.

Несмотря на то, что многие сотрудники ушли, Пенн сумел сыграть еще раз важную роль в развитии компьютеров. В июле 1946 года большинство экспертов в этой области, в том числе фон Нейман, Голдстайн, Эккерт, Мокли и другие, обычно враждовавшие друг с другом, вернулись в Пенн, чтобы прочитать лекции, провести семинары и поделиться своими знаниями о компьютерных вычислениях. На это восьминедельное мероприятие, называвшееся Лекциями школы Мура, съехались: Говард Айкен, Джордж Роберт Стибиц, Дуглас Хартри из Манчестерского университета и Морис Уилкс из Кембриджа. Основное внимание уделялось использованию в универсальных (в понимании Тьюринга) компьютерах архитектуры с сохраняемой программой. В результате конструкторские идеи, выработанные совместно Мокли, Эккертом, фон Нейманом и другими сотрудниками Пенна, стали базовыми для большинства компьютеров будущего.

Честь называться первым компьютером с сохраняемой программой принадлежит двум машинам, которые были завершены почти одновременно – летом 1948 года. Одна из них была обновленной версией оригинального ENIAC. Фон Нейман и Голдстайн вместе с инженерами Ником Метрополисом и Ричардом Клиппенджером разработали способ использования трех функциональных таблиц ENIAC для сохранения множества простейших команд83. Эти функциональные таблицы нужны были для того, чтобы хранить данные о расчете траекторий артиллерийских снарядов, а устройство памяти могло быть применено для других целей, так как машина уже не использовалась для расчета баллистических таблиц. И опять реальная программистская работа была проделана в основном женщинами: Аделью Голдстайн, Кларой фон Нейман и Джин Дженнингс Бартик. Бартик вспоминала: “Я снова работала с Аделью и другими программистами, и мы вместе разрабатывали оригинальную версию программы, чтобы превратить ENIAC в компьютер с сохраняемой программой, использующий функциональные таблицы для хранения закодированных инструкций”84.

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

Вычислительная лаборатория в Манчестере была создана Максом Ньюманом, наставником Тьюринга, а основную работу на новом компьютере проделали Фредерик Калланд Уильямс и Томас Килбурн. Уильямс придумал устройство хранения с помощью электронно-лучевых трубок, которые сделали машину более быстродействующей и простой, чем те, которые использовали ртутные линии задержки. Оно работало так хорошо, что его использовали для изготовления более мощного компьютера Mark I /Manchester, который был сдан в эксплуатацию в апреле 1949 года, а также для изготовления Морисом Уилксом и командой из Кембриджа компьютера EDSAC в мае того же года85.

Тогда же, параллельно с созданием этих машин, Тьюринг также пытался разработать компьютер с сохраняемой программой. После ухода из Блетчли-Парка он поступил на работу в Национальную физическую лабораторию – престижный институт в Лондоне, где разработал компьютер, названный автоматической вычислительной машиной (ACE) в честь двух машин Бэббиджа. Но строительство ACE продвигалось неровно, и к 1948 году Тьюринг уже разочаровался и тем, что процесс тормозился, и тем, что его коллеги не испытывали никакого интереса ни к устройству машины, ни к искусственному интеллекту. И тогда он уехал из Лондона и присоединился к Максу Ньюману в Манчестере86.

И в это же время – в 1946 году – в Институте перспективных исследований в Принстоне фон Нейман тоже погрузился с головой в работу над компьютером с сохраняемой программой. Этот проект описан в эссе Джорджа Дайсона “Собор Тьюринга”. Директор института Фрэнк Эйделоти и наиболее влиятельный член профессорского совета Освальд Веблен были убежденными сторонниками проекта, несмотря на противодействие со стороны других профессоров, утверждавших, что работа над вычислительной машиной принижает статус института, задуманного основателями как рай для теоретиков. Все-таки проект фон Неймана как-то продвигался, и в результате была построена машина IAS. “Он явно шокировал и даже приводил в ужас некоторых своих коллег – математиков, погруженных исключительно в абстрактные размышления, открыто демонстрируя крайнюю заинтересованность не только в доске и меле, карандаше и бумаге, но и в различных устройствах, – вспоминала жена фон Неймана Клара. – Его предложение сконструировать электронную вычислительную машину под священным куполом института горячего одобрения не получило, чтобы не сказать больше”87.

Членов команды фон Неймана загнали в помещение, которое использовалось секретарем ученого-логика Курта Гёделя, которому секретарь был не нужен. На протяжении 1946 года они опубликовали подробные отчеты о конструкции их машины и направили их в библиотеку Конгресса и Американское патентное ведомство. Но приложили к отчетам не патентную заявку, а нотариально заверенное заявление, в котором говорилось, что они хотели бы, чтобы результаты их работы были открыты для общего пользования.

Их машина была полностью готова в 1952 году, но работа над проектом угасла после того, как фон Нейман уехал в Вашингтон и стал работать в Комиссии по атомной энергии. “Роспуск нашей компьютерной группы был катастрофой не только для Принстона, но и для науки в целом, – рассказывал физик Фримен Дайсон, сотрудник института (и отец Джорджа Дайсона). – Это означало, что в тот критический период – в 1950-е годы – больше не существовало академического центра, в котором компьютерщики всех направлений могли бы собраться вместе и [обсуждать проблемы] на самом высоком интеллектуальном уровне”88. Начиная с 1950-х годов, новые разработки в области вычислительной техники перемещаются в корпоративную сферу, в основном в компании Ferranti, IBM, Remington Rand и Honeywell.

Эти изменения возвращают нас к вопросу о патентной защите. Если бы фон Нейман и его команда продолжили внедрение инноваций и выложили бы их в общий доступ, привела ли бы такая модель развития – модель открытых кодов – к ускоренному развитию компьютеров? Или же рыночная конкуренция и финансовая заинтересованность в создании интеллектуальной собственности больше стимулировали рождение инноваций? В случаях Интернета, Web и некоторых видов программного обеспечения открытая модель, как оказалось, работала лучше. Но когда речь идет об аппаратуре, например компьютерах и микрочипах, лучшие стимулы для инновационного рывка в 1950-х годах обеспечила система защиты интеллектуальной собственности. Причина того, что подход, защищающий авторское право (проприетарный подход), работал хорошо, особенно для компьютеров, состояла в том, что крупные промышленные организации, в которые было легче привлечь оборотные средства, лучше подходили для проведения исследований, разработки, производства и продажи таких машин. Кроме того, до середины 1990-х годов было проще обеспечить патентную защиту аппаратным узлам, чем программному обеспечению[22]. Тем не менее у пути, на котором патентной защите инноваций в области аппаратного устройства компьютеров уделялось повышенное внимание, был и недостаток: проприетарная модель способствовала возникновению компаний, которые были настолько маломобильными и закостеневшими, что они проспали революцию персональных компьютеров начала 1970-х годов.

Может ли машина мыслить?

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

Вопросы, связанные с искусственным интеллектом, возникали уже в древности. Тогда же возникали и вопросы, связанные с человеческим сознанием. Как и в большинстве обсуждений такого рода, важную роль в изложении их в современных терминах сыграл Декарт. В своем трактате 1637 года “Рассуждение о методе” (который содержит знаменитое утверждение “Я мыслю, следовательно, я существую”) Декарт писал:

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

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

Там он встретился с колоритным гением – Клодом Шенноном, который, будучи выпускником Массачусетского технологического института, в 1937 году написал дипломную работу, ставшую классической. В ней он показал, как булева алгебра, которая представляет логические предложения в виде уравнений, может быть отображена с помощью электронных схем. Шеннон и Тьюринг стали встречаться за чаем и вести долгие разговоры. Оба интересовались наукой о мозге и понимали, что в их работах 1937 года было нечто общее и фундаментальное: они показали, как машине, которая оперирует простыми двоичными командами, можно ставить не только математические, но и всевозможные логические задачи. А поскольку логика была основой человеческого мышления, то машина могла бы в теории воспроизвести человеческий интеллект.

“Шеннон хочет кормить [машину] не только данными, но и произведениями культуры! – однажды сказал Тьюринг коллегам по Bell Lab на обеде. – Он хочет сыграть ей что-нибудь музыкальное”. На другом обеде в столовой Bell Labs Тьюринг вещал своим высоким голосом, слышным всем присутствовавшим в помещении: “Нет, я не собираюсь конструировать мощный мозг. Я пытаюсь сконструировать всего лишь посредственный мозг – такой, например, как у президента Американской телефонной и телеграфной компании”89.

Когда в апреле 1943 года Тьюринг вернулся в Блетчли-Парк, он подружился с коллегой Дональдом Мичи, и они провели много вечеров, играя в шахматы в соседнем пабе. Они часто обсуждали возможность создания шахматного компьютера, и Тьюринг решил подойти к проблеме по-новому. А именно: не использовать напрямую всю мощность машины для расчета каждого возможного хода, а постараться дать машине возможность самой учиться игре в шахматы, постоянно практикуясь. Другими словами, дать ей возможность пробовать применить новые гамбиты и совершенствовать свою стратегию после каждого нового выигрыша или проигрыша. Такой подход в случае успеха являлся бы существенным прорывом, который порадовал бы Аду Лавлейс. Было бы доказано, что машины способны на большее, чем просто следовать инструкциям, данным им людьми, – они могли бы учиться на опыте и улучшать свои собственные команды.

“Считается, что вычислительные машины могут выполнять только такие задачи, на которые им даны команды, – объяснил он в докладе, сделанном на Лондонском математическом обществе в феврале 1947 года. – Но необходимо ли, чтобы они всегда использовались таким образом?” Затем он обсудил возможности новых компьютеров с сохраняемой программой, которые могут сами изменять таблицы команд, и продолжил: “Они могли бы стать похожими на учеников, которые многому научились у своего учителя, но добавили гораздо больше своего. Я думаю, что, когда это произойдет, придется признать, что машина демонстрирует наличие интеллекта”90.

Когда он закончил доклад, слушатели на мгновение замолкли, ошеломленные заявлением Тьюринга. Его коллеги из Национальной физической лаборатории вообще не понимали одержимости Тьюринга созданием думающих машин. Директор Национальной физической лаборатории сэр Чарльз Дарвин (внук биолога, создателя теории эволюции) в 1947 году написал своему начальству, что Тьюринг “хочет распространить свою работу над машиной еще дальше, в сторону биологии” и ответить на вопрос: “Можно ли сделать такую машину, которая может учиться на своем опыте?”91

Смелая мысль Тьюринга о том, что машины смогут когда-нибудь думать, как люди, в то время вызвала яростные возражения, да и до сих пор вызывает. Появились как вполне ожидаемые религиозные возражения, так и нерелигиозные, но весьма эмоциональные, как по содержанию, так и по тону. Нейрохирург сэр Джеффри Джефферсон в речи, произнесенной по случаю награждения престижной медалью Листера в 1949 году, заявил: “Согласиться с тем, что машина так же разумна [как человек], мы сможем не раньше, чем она сможет написать сонет или сочинить концерт под влиянием своих мыслей и эмоций, а не из-за случайного выбора символов”92. Ответ Тьюринга репортеру из лондонского Times, казалось, был несколько легкомысленным, но тонким: “Сравнение, возможно, не совсем справедливо, поскольку сонет, написанный машиной, лучше оценивать другой машине”93.

Таким образом, был заложен фундамент для второй основополагающей работы Тьюринга, “Вычислительные машины и разум”, опубликованной в журнале Mind в октябре 1950 года94. В ней он описал тест, ставший известным впоследствии как тест Тьюринга. Он начал с четкого заявления: “Я предлагаю рассмотреть вопрос: «Могут ли машины мыслить?»” С азартом, скорее присущим школьнику, он придумал игру – и в нее все еще играют и до сих пор обсуждают. Он предложил вложить в этот вопрос реальный смысл и сам дал простое функциональное определение искусственного интеллекта: если ответ машины на вопрос ничем не отличается от ответа, который дает человек, то у нас не будет никакого разумного основания считать, что машина не “думает”.

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

Вопрос: Пожалуйста, напишите мне сонет о мосте Форт[24].

Ответ: Не просите меня об этом. Я никогда не умел писать стихи.

В: Сложите 34 957 и 70 764.

О (пауза примерно 30 секунд, а затем дается ответ): 105 621.

В: Вы играете в шахматы?

О: Да.

В: У меня есть только K (король) на K1, и никаких других фигур.

У вас есть только K на K6 и R (ладья) на R1[25]. Ваш ход. Куда вы ходите?

О (после паузы 15 секунд): R на R8, мат.

В этом примере Тьюринга диалога содержится несколько важных вещей. Тщательное изучение показывает, что отвечающий после тридцатисекундного раздумья сделал небольшую ошибку в сложении (правильный ответ 105 721). Свидетельствует ли это о том, что он был человеком? Возможно. Но опять же, может быть, эта хитрая машина притворилась человеком. Тьюринг также ответил на соображение Джефферсона о том, что машина не может написать сонет: вполне возможно, что ответ, приведенный выше, был дан человеком, признавшимся, что он не умеет писать стихи. Далее в статье Тьюринг представил еще один воображаемый опрос, демонстрирующий сложность использования умения сочинить сонет в качестве критерия принадлежности к человеческому роду:

В: Считаете ли вы, что первую строку сонета: “Должен ли я сравнить тебя с летним днем” не испортит, а может, даже улучшит замена на “весенний день”?

О: Тогда нарушится размер.

В: Как насчет замены на “зимний день”? Тогда с размером все в порядке.

О: Да, но никто не хочет быть сравненным с зимним днем.

В: Вы хотите сказать, что мистер Пиквик напоминает вам о Рождестве?

О: В некотором смысле.

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

О: Я не думаю, что вы говорите серьезно. Под зимним днем обычно понимают типичный зимний день, а не особенный, вроде Рождества.

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

Тьюринг высказал свое предположение о том, может ли компьютер выиграть в этой имитационной игре: “Я считаю, в течение примерно пятидесяти лет можно будет научиться так программировать компьютеры… что они смогут играть в имитацию настолько хорошо, что шанс среднего экзаменатора правильно идентифицировать отвечающего после пятиминутного опроса будет не более 70 %”.

В своей работе Тьюринг попытался опровергнуть множество возможных возражений на его определение разума. Он отмахнулся от теологического довода о том, что Бог даровал душу и разум только людям, возразив, что это “подразумевает серьезное ограничение на всемогущество Всевышнего”. Он спросил, есть ли у Бога “свобода даровать душу слону, если Он сочтет это нужным”. Предположим, что так. Из той же логики (которая, учитывая, что Тьюринг был неверующим, звучит язвительно) следует, что Бог, безусловно, может даровать душу и машине, если Он того пожелает.

Самое интересное возражение, на которое Тьюринг отвечает, – особенно для нашего повествования – это возражение Ады Лавлейс, написавшей в 1843 году: “Аналитическая машина не претендует на то, чтобы создавать что-то действительно новое. Машина может выполнить все то, что мы умеем ей предписать. Она может следовать анализу, но не может предугадать какие-либо аналитические зависимости или истины”. Другими словами, в отличие от человеческого разума, механическое устройство не может иметь свободу воли или выдвигать свои собственные инициативы. Оно может только выполнять то, что запрограммировано. В своей статье 1950 года Тьюринг посвятил раздел этому высказыванию и назвал его “Возражение леди Лавлейс”.

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

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

Это возражение привело к продержавшемуся дольше всех опровержению теста Тьюринга, которое сформулировал философ Джон Сёрл в своем эссе 1980 года. Он предложил мысленный эксперимент, называемый “Китайской комнатой”, в которой говорящему по-английски человеку, не знающему китайского языка, предоставляется полный свод правил, объясняющих, как составлять любые комбинации китайских иероглифов. Ему передается набор иероглифов, а он из них составляет сочетания, пользуясь правилами, но не понимая значения фраз, составленных им. Если инструкции достаточно хороши, человек мог бы убедить экзаменатора, что он действительно говорит по-китайски. Тем не менее он не понял бы ни одного составленного им самим текста, в нем не содержалось бы никакого смысла. В терминологии Ады Лавлейс он не претендовал бы на создание чего-то нового, а просто выполнял действия, которые ему было приказано выполнять. Аналогично и машина в имитационной игре Тьюринга, независимо от того, насколько хорошо она может имитировать человеческий разум, не будет понимать или сознавать ничего из того, что говорится. В том, чтобы сказать, что машина “думает”, не больше смысла, чем в том, чтобы сказать, что человек, следующий многочисленным инструкциям, понимает китайский язык95.

Одним из ответов на возражения Сёрла стало утверждение, что, даже если человек не понимает китайский язык, вся система как целое, собранная в Китайской комнате, то есть мужчина (блок обработки данных), инструкция по обращению с иероглифами (программа) и файлы с иероглифами (данные), возможно, действительно понимает китайский язык. Здесь нет окончательного ответа. И в самом деле, тест Тьюринга и возражения на него остаются по сей день наиболее обсуждаемой темой в когнитивных науках.

В течение нескольких лет после того, как Тьюринг написал “Вычислительные машины и разум”, он, казалось, наслаждался участием в перепалке, которую сам спровоцировал. С едким юмором он парировал притязания тех, кто болтал о сонетах и возвышенном сознании. В 1951 году он подтрунивал над ними: “Однажды дамы возьмут свои компьютеры с собой на прогулку в парк и будут говорить друг другу: «Мой компьютер рассказывал сегодня утром такие забавные вещи!»” Как заметил позже его наставник Макс Ньюман, “его юмористические, но блестяще точные аналогии, пользуясь которыми он излагал свои взгляды, делали его восхитительным собеседником”96.

Была одна тема, которая не раз поднималась в ходе обсуждений с Тьюрингом и которая вскоре станет печально актуальной. Она касалась роли сексуальности и эмоциональных желаний, неведомых машинам, в работе человеческого мозга. Примером могут служить публичные дебаты, состоявшиеся в январе 1952 года на телевизионном канале BBC между Тьюрингом и нейрохирургом сэром Джеффри Джефферсоном. Модераторами на этом диспуте были математик Макс Ньюман и философ науки Ричард Брейтуэйт. Брейтуэйт, утверждавший, что для того, чтобы создать настоящую думающую машину, “необходимо оснастить машину чем-то подобным набору физических потребностей”, заявил: “Интересы человека определяются по большому счету его страстями, желаниями, мотивацией и инстинктами”. Ньюман вмешался, сказав, что машины “имеют довольно ограниченные потребности и они не могут краснеть, когда смущаются”. Джефферсон пошел еще дальше, неоднократно используя в качестве примера термин “сексуальные потребности” и ссылаясь на человеческие “эмоции и инстинкты, например имеющие отношение к сексу”. “Человек – жертва сексуальных желаний, – сказал он, – и может выставить себя дураком”. Он говорил так много о том, как сексуальные потребности влияют на человеческое мышление, что редакторы BBC вырезали некоторые из его высказываний из передачи, в том числе утверждение, что он не поверит, что компьютер может думать, пока не увидит, что он потрогает ногу женщины-компьютера97.

Тьюринг, который все еще скрывал свою гомосексуальность, замолк во время этой части обсуждения. В течение нескольких недель, предшествовавших записи передачи 10 января 1952 года, он совершил ряд поступков, которые были настолько сугубо человеческими, что машина сочла бы их непостижимыми. Он только что закончил научную работу, а потом написал рассказ о том, как собирался отпраздновать это событие: “Прошло довольно много времени с тех пор, как у него «был» кто-то, фактически с лета прошлого года, когда он встретил того солдата в Париже. Теперь, когда его работа закончена, он может с полным основанием считать, что заработал право на отношения с геем, и он знал, где найти подходящего кандидата”98.

В Манчестере на Оксфорд-стрит Тьюринг нашел девятнадцатилетнего бомжа по имени Арнольд Мюррей и завязал с ним отношения. Когда он вернулся с BBC после записи шоу, он пригласил Мюррея переселиться к нему. Однажды ночью Тьюринг рассказал молодому Мюррею о своей идее сыграть в шахматы против подлого компьютера, которого он смог бы победить, заставляя его проявлять то гнев, то радость, то самодовольство. Отношения в последующие дни стали более сложными, и однажды вечером Тьюринг вернулся домой и обнаружил, что его обокрали. Преступник оказался другом Мюррея. Тьюринг сообщил о случившемся в полицию, ему пришлось в конечном итоге рассказать полицейским о своих сексуальных отношениях с Мюрреем, и Тьюринг был арестован за “непристойное поведение”99.

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

Сначала казалось, что Тьюринг все это выносит спокойно, но 7 июня 1954 года он покончил жизнь самоубийством, откусив от яблока, пропитанного цианидом. Его друзья отмечали, что ему всегда нравилась сцена из “Белоснежки”, в котором злая фея опускает яблоко в ядовитое варево. Он был найден в своей постели с пеной у рта, цианидом в теле и недоеденным яблоком, лежащим рядом с ним.

Способны ли так поступать машины?


Джон Бардин (1908–1991), Уильям Шокли (1910–1989), Уолтер Браттейн (1902–1987) в Bell Labs, 1948 г.


Первый транзистор, изготовленный в Bell Labs


Коллеги, в том числе Гордон Мур (сидит слева) и Роберт Нойс (стоит в центре с бокалом вина), произносят тосты в честь Уильяма Шокли (во главе стола) в день награждения его Нобелевской премией, 1956 г.