Книга: Краткая история цифровизации
Назад: 10. О карликах Кремниевой долины
Дальше: 12. Изобретение мыши

11. Грейс Великолепная, или Как воспитать компьютер

Однажды к ней явился начальник и потребовал, чтобы она написала книгу. Она запротестовала и сказала, что это невозможно, ведь раньше ей не приходилось такого делать. Начальник был краток: «Вы напишете эту книгу. Вы служите на флоте, а это приказ». Приказы старших по званию не обсуждаются, поэтому лейтенант Грейс Мюррей Хоппер села за работу. Углубившись в материал, она поняла, что ее задача, – нет, даже больше, ее призвание – состоит в том, чтобы заставить заговорить прежде немой объект. До этого пионеры компьютерных исследований общались со своим цифровым визави шифром из нулей и единиц, а Грейс Мюррей Хоппер, если так можно выразиться, научила компьютер разговаривать. Она поняла, насколько нам нужен для взаимодействия с машиной общепонятный естественный язык, и именно благодаря ей у нас есть языки программирования, компиляторы и трансляторы, именно благодаря ей компьютер из вычислителя прекратился в умное волшебное зеркало, в котором человек видит себя и изобретает себя заново. Сама Хоппер не считала свой вклад в развитие компьютерной техники столь значимым. Она пишет: «Вплоть до Второй мировой войны жизнь была простой, а потом у нас появились системы». В этой фразе можно усмотреть ворчание по поводу упадка современной культуры, однако на самом деле Грейс Хоппер была целиком и полностью устремлена в будущее, что полностью сочеталось с ее необычной внешностью. Биограф Курт Байер рассказывает, что впервые увидел ее на вручении очередной премии. Одетая по полной форме контр-адмирала, она продолжала вязать, даже когда ведущий начал рассказывать о ее заслугах и достижениях, и только потом встала и произнесла пламенную речь, где не было ни слова о прошлом, а только о будущем. Она говорила о распределенных вычислениях, параллельных процессорах и о том, что злейший враг людей – это фраза «Мы так всегда делали!».
Грейс Хоппер родилась в состоятельной нью-йоркской семье. Родители души не чаяли в своих детях, а отец стремился всецело удовлетворить тягу своих двух дочерей и сына к знаниям. Никто не препятствовал маленькой Грейс, когда она, не удовлетворившись созерцанием будильника, решила разобрать его и изучить внутреннее устройство. С первого раза трюк не удался, а после сборки остались лишние детали, поэтому жертвой девочки чуть было не пали еще шесть будильников, но тут вмешалась мама и ограничила пыл юного экспериментатора.
Однажды дедушка по материнской линии, который работал строительным инженером в городской администрации, взял Грейс с собой на инспекцию. Это настолько впечатлило ее, что она захотела стать инженером – очень нестандартная мечта, потому что эта профессия совершенно не считалась женской, хотя женщины в те годы уже давно были не только домохозяйками. Грейс поступила в Йельский университет и стала первой выпускницей математического факультета, вышла замуж за преподавателя английской литературы и сама начала преподавать в Вассарском колледже города Покипси. Брак не сильно изменил ее жизнь – лето Грейс проводила с семьей, а все остальное время посвящала своим студентам. Ее жажда знаний с годами не утихала: она посещала курсы по зоологии, химии, физике, геологии, биологии, экономике и архитектуре, чтобы почерпнуть в этих дисциплинах что-то полезное для собственных исследований. Тем не менее академическая карьера Грейс первые 35 лет жизни шла по накатанной и не отличалась ничем особенным, кроме, пожалуй, ее научной всеядности – завидная стабильность во времена Великой депрессии.
Поворотным моментом для Грейс – и, кстати, для всемирной истории – стало 7 декабря 1941 года, когда американский флот был атакован японской авиацией в Перл-Харборе. Хоппер посчитала, что должна внести свой вклад в защиту родины. Она развелась с мужем и решила пойти служить на флот – что было крайне необычно, так как в то время женщин на флоте не было, хотя такая возможность в исключительном случае допускалась правилами программы WAVES. На медицинской комиссии, однако, выяснилось, что девушка весит всего 47 килограммов, меньше минимального допустимого значения. Лишь благодаря врожденной настойчивости и после длительного ожидания ей удалось все-таки поступить на службу. Хоппер прошла курс молодого бойца и неожиданно для себя осознала, что ей, метущейся натуре, нравится военная муштра. Надежда применить свои математические способности в армии, однако, не сбылась: девушку отправили в Гарвард, в подвал Лаборатории Крафта, где сидел Говард Эйкен, которому был нужен ассистент.
Лаборатория исторически подчинялась военному ведомству. Ее руководитель, профессор физики Эйкен, занимался проблемой расчета электрического заряда в ионосфере начиная с конца тридцатых годов, для чего ему требовалась вычислительная машина. Существовавшие тогда машины Холлерита не умели работать с отрицательными числами и были бесполезны для такой задачи, поэтому Эйкен, всегда восхищавшийся Чарльзом Бэббиджем, спроектировал собственный компьютер, для экономии средств максимально используя легко доступные на тот момент компоненты. Заказ был отдан компании IBM, которая в 1944 году построила этот компьютер, получивший название Mark I, и установила его в лаборатории. Вся работа была оплачена правительством страны в обмен на обязательство выполнять государственные проекты в будущем. Mark I имел гигантские размеры, весил 5 тонн и состоял из 750 000 деталей, более 3500 электромеханических реле и 8,7 километра проводов. Когда началась война, Эйкен объявил себя «военным профессором» и предоставил свою лабораторию в распоряжение военно-морского ведомства, а академическая расслабленность сразу сменилась жесткой дисциплиной. Эйкен настаивал на том, чтобы его называли «коммандером», а он в свою очередь обращался со своими подчиненными в соответствии с их воинским званием. Очень скоро лабораторию завалили вычислительными задачами: машина не отличалась высокой скоростью и могла выполнять всего три операции сложения в секунду (современный компьютер способен производить 336 миллиардов таких операций в секунду), но была незаменима для баллистических расчетов Манхэттенского проекта.
Когда Mark I монтировали, Эйкен был уже занят проектированием следующей, более мощной версией машины, поэтому попросил прислать ему ассистента, способного взять на себя текущие дела – и тут ему присылают какую-то женщину! Эйкен утешал себя тем, что ему, как последователю Бэббиджа, досталась своя Ада Лавлейс. К его удивлению лейтенант Хоппер оказалась очень способной и уже через неделю освоила кодирование. Эйкен оценил ее старания и отдал тот самый приказ написать руководство по вычислительной машине. Лаборатории Крафта в то время были одними из немногих, кто мог совершать сложные вычисления, поэтому здесь бывали многие будущие звезды компьютерного мира: например, Джон фон Нейман отслеживал баллистические расчеты для Манхэттенского проекта, а Норберт Винер часто заходил, чтобы поспорить с Эйкеном о том, является ли мозг компьютером или наоборот.
Грейс Хоппер же была ответственной за саму машину, поэтому не следила за такими материями: несмотря на то, что все работало как часы, поручений меньше не становилось, да и программирование Mark I было невероятно трудоемким. Машина постоянно отключалась, и сотрудникам приходилось залезать в ее недра, вооружившись фонариками и зеркальцем из косметички Хоппер. Иногда причиной таких неполадок становилась обычная моль, случайно попавшая между контактами – отсюда появилось слово «баг» и выражение «дебаггинг» (то есть буквально «дезинсекция»), – но чаще всего ошибки были связаны с человеческим фактором. Особенно часто возникал «демонстрационный эффект», когда кто-то из старших по званию приводил в лабораторию очередную группу любопытных посетителей. Наглядно продемонстрировать сложное устройство вычислительной машины было затруднительно, поэтому чаще всего экскурсия завершалась тем, что один из начальников решительно выдергивал один из штекеров на коммутационной панели и переставлял его в другое положение. К сожалению, это почти всегда имело фатальные последствия, так как меняло всю рабочую программу машины, и она теряла способность корректно выполнять вычисления.

 

 

Подобных аппаратных вмешательств сотрудникам лаборатории хотелось избежать, поэтому Грейс Хоппер создала библиотеку часто используемых подпрограмм в виде небольших перфокарт с рукописными пометками. Карточки существенно ускорили процесс программирования, и она начала сшивать их в последовательности, конструируя более сложные программы (например, операции вычисления косинуса или квадратного корня), что еще больше упростило работу.
Тем не менее четкая граница между аппаратной и программной составляющей машины сохранялась и постоянно создавала неудобства. Корнем зла, как и раньше, был человеческий фактор: программисты часто ошибались даже при ручном копировании перфокарт. Конечно, в этом не было злого умысла, просто подтверждался закон Мерфи: если что-то может пойти не так, то это пойдет не так. Хоппер регулярно убеждалась в этом на собственном примере, когда сама делала ошибки, выполняя вроде бы прекрасно знакомые операции. Она пришла к выводу, что всю эту работу было бы лучше перепоручить машине. Так была сформулирована цель проекта, который будет занимать Хоппер в ближайшее десятилетие: добиться того, чтобы программисты разговаривали с машиной с помощью языка, а не переключали контакты. Конечно, для этого нужно было вначале обучить этому языку машину, что Хоппер и отразила в названии представленного в 1952 году исследовательского проекта The Education of a Computer – «Обучение компьютера».
Сразу приступить к делу не получилось: дело в том, что расположенная в подвале Гарвардского университета лаборатория коммандера Эйкена в послевоенное время перестала вписываться в структуру учебного заведения, а финансирование со стороны оборонного ведомства почти прекратились. Большую часть сотрудников уволили или перевели в штат университета, но самой Хоппер не предложили остаться преподавать в Гарварде. Она начала искать утешение в табаке и алкоголе и впала в глубокую депрессию, откуда ее с трудом вызволили друзья и бывшие коллеги. В итоге Хоппер позвали в филадельфийскую лабораторию Джона Преспера Эккерта и Джона Мокли, которая по заказу компании Remington Rand строила ЭНИАК – первый в мире полностью электронный цифровой вычислитель на вакуумных радиолампах. Хоппер получила должность руководителя отдела программирования и продолжила свой компьютерно-образовательный проект на этом посту. Опираясь на опыт автоматизации работы с помощью перфокарт, она решила форсировать создание языка программирования, чтобы коммуникация человека и машины происходила максимально понятным образом. Созданный ей язык FLOW-MATIC позволил добиться значимых успехов: выросла не только скорость работы компьютера, но и уровень сложности, а также эффективность написанных на этом языке программ. Противниками внедрения нового языка, как ни удивительно, оказались не руководители лаборатории, а сами программисты, которые боялись, что их навыки копания в ламповых схемах станут ненужными, и им придется уступить свое место каким-то пришлым программистам.
Чтобы показать, что настоящее искусство программирования заключается не в знании оборудования, а в силе воображения и готовности отказаться от привычных путей в поисках новых решений, Хоппер часто предлагала стать программистами другим сотрудникам компании, в первую очередь секретаршам. Она долго наблюдала за их работой и убедилась в том, что девушки выполняли ее крайне добросовестно, а именно этот навык и был неотъемлемым в коммуникации с машиной. Усилия Хоппер по превращению «глупых блондинок» в гениев программирования увенчались успехом, и вскоре больше половины ее отдела программирования состояла из женщин. Всё это доказывало, что для управления компьютером больше не нужно было владеть ни высшей математикой, ни квантовой механикой; компьютерная программа оторвалась от материального и перешла в сферу воображения – то есть позволяла произвольно творить новые миры. Если во вселенной коммандера Эйкена всем нужно было обязательно взаимодействовать с машиной физически, то во вселенной Хоппер программист вообще не должен думать о тех квантовомеханических процессах, которые повлекут за собой действия, описываемые им на бумаге или загружаемые в память компьютера. Все происходит как по мановению волшебной палочки: сказано – сделано! Получается, что язык программирования воплощает в жизнь то, о чем люди раньше могли только мечтать. В этом смысле язык программирования – дополнение к микропроцессору, переход в сослагательное наклонение, в виртуальную реальность, где возможно всё, а ограничений не существует. Перефразируя Роберта Оппенгеймера, можно сказать, что язык не позволяет видеть, как выглядят вещи, но позволяет понять, как эти вещи могли бы выглядеть.
Границы исчезают, уступая свое место чувству возможного – вполне в духе постматериализма и лозунгов будущих студенческих революций: «Вся власть воображению!», «Вся власть детям!»
В кабинете Хоппер висели часы, идущие не вперед, а назад: так она демонстрировала своим собеседникам ограниченность человеческого сознания. Но Хоппер умела находить аргументы не только в личном разговоре, но и в продвижении своих инноваций. Ей удалось продемонстрировать руководству компании и всему программистскому сообществу, что революция в программировании не только приведет к повышению качества и скорости, но и откроет новые сферы применения компьютеров. Однако для всего этого программистам вначале требовалось договориться, на каком языке они будут писать свои программы. Проявив свои способности гениального коммуникатора, Хоппер смогла убедить коллег по цеху перейти на Кобол (COBOL, Common Business Oriented Language) – первый высокоуровневый язык программирования, удерживавший пальму первенства по частоте использования вплоть до 2000 года. На этом невероятная история не закончилась: после завершения гражданской карьеры нашего неутомимого футуролога Грейс Хоппер снова призвали на действительную службу и повысили до звания контр-адмирала с вязальными спицами в руках, а в 1969 году даже признали человеком года. В чем же состоял главный принцип счастливой жизни контр-адмирала Хоппер? «Лучше сделать и потом извиниться, чем заранее просить разрешения».
Назад: 10. О карликах Кремниевой долины
Дальше: 12. Изобретение мыши