Женщины-математики. От Гипатии до Эмми Нётер
Шрифт:
Проще просить прощения, нем разрешения.
Приписывается Грейс Хоппер, женщине-математику и военному моряку.
Подобное внимание приятно, но вызывает неловкость. Мне бы хотелось, чтобы меня запомнили как математика, по теоремам, которые я доказала, и по задачам, которые я решила.
Джулия Робинсон
Кто же главный герой этой главы? Контр-адмирал, получивший это звание в 1983 году, в возрасте 77 лет, или миноносец «Хоппер»? Конечно же, сам контр-адмирал — миноносец был назван в его честь. Но есть одна небольшая деталь: этот контр-адмирал был женщиной… Если мы добавим, что эта женщина была математиком, большим специалистом по компьютерам, а также, среди прочего, придумала язык программирования COBOL, то читатель посмотрит на нее совершенно другими глазами. Да, все эти и многие другие качества сочетала в себе Грейс Хоппер по
Пушки и компьютеры
При рождении Грейс Хоппер получила имя Грейс Брюстер Мюррей. Она была правнучкой адмирала Джорджа Мюррея, который стал ее кумиром на всю жизнь. Сильный и независимый характер Грейс, должно быть, сформировался под влиянием родителей. Мать, Мэри Кэмпбелл ван Хорн, в юности также получила образование, но не справилась с давлением общества. Она бы с удовольствием занималась математикой, но это считалось неподходящим занятием для девушки. Отец, Уолтер Флетчер Мюррей, был страховым брокером, но когда его дети были еще совсем маленькими, из-за болезни кровеносной системы ему ампутировали одну за другой обе ноги. Несмотря на невзгоды, семья не сдавалась: Грейс получила образование, а ее отец дожил до семидесяти лет. Уолтер Мюррей воспитывал в детях уверенность в том, что усилием воли можно достичь всего. Кроме того, он не проводил различия между обучением девочек и мальчиков.
Грейс родилась в эпоху зарождения технологий: в воздух поднялся самолет братьев Райт, с конвейера сошел «Форд Т» Генри Форда. Когда Грейс было всего семь лет, она из любопытства разобрала домашние часы, чтобы узнать, как они работают. По всей видимости, ей не удалось сразу понять принцип действия часов, и она продолжила свои исследования. И только после того, как Грейс разобрала семь часов, мать заподозрила неладное и прекратила эти жертвоприношения. Возможно, именно поэтому на часах в офисе Грейс часовая стрелка двигалась в обратную сторону: это было еще одним проявлением инновационности и оригинальности мышления, которые Грейс так высоко ценила. Одно из ее изречений гласит: «Кораблю в порту ничто не угрожает, но он был построен не для этого. Выходите в открытое море и совершайте открытия».
Поступить с первой попытки в престижный Колледж Вассара Грейс не удалось, так как она не сдала экзамен по латыни (сегодня подобное невозможно). Она поступила со второй попытки и во время учебы получала высшие отметки по математике и физике. Позднее Грейс была присвоена степень доктора в Йельском университете, и она стала первой женщиной в истории, удостоенной такой чести. Ее научным руководителем был знаменитый алгебраист Ойстин Оре. Затем Колледж Вассара предложил девушке место преподавателя, а впоследствии и доцента. В 1941 году Грейс получила стипендию на обучение в Курантовском институте математических наук в Нью-Йорке — об этом заведении все отзывались с почтением и трепетом.
К тому времени Грейс уже вышла замуж за Винсента Хоппера, преподавателя иностранных языков Нью-Йоркского университета, и прожила в браке до конца войны. Когда в 1945 году супруги развелись, она сохранила фамилию мужа. В том же году ее уже бывший муж погиб на поле боя.
Подобно героям романов, которые слышат зов предков, в 1943 году Грейс услышала зов отечества. После бомбардировки Пёрл-Харбора Соединенные Штаты вступили в войну, и Грейс записалась добровольцем на флот, в знаменитые Военно-морские силы США. Это было непросто: ее вес был меньше минимально допустимого на целых семь килограммов, и ей пришлось добиваться исключения из правил. В итоге Грейс была принята в ряды ВМС и стала лучшей в своем выпуске. По окончании занятий в учебной части она получила звание младшего лейтенанта. Вышестоящие офицеры поступили весьма благоразумно, отправив Грейс исполнять приказы математика Говарда Эйкена (1900–1973) и его компьютера Mark I. О первом появлении Хоппер в лаборатории позднее ходили легенды. «Где, черт возьми, вы были? Коэффициенты для функции arctg х должны быть готовы к четвергу!» — закричал Эйкен, едва увидев ее. Впоследствии Хоппер и Эйкен написали множество совместных статей, посвященных не только Mark I, но и его следующим версиям — Mark II и Mark III. Чтобы подготовить любителей вычислений к работе с новым инструментом — компьютером, Грейс составила руководство объемом в 500 страниц.
Mark I, который, по мнению многих, был первым суперкомпьютером в истории, насчитывал свыше 15 метров в длину и 2,5 метра в ширину и высоту. Этот мастодонт, несмотря на свои размеры, обладал смехотворно малым объемом памяти и мог выполнять всего три операции сложения в секунду. Любой современный персональный компьютер посмотрел бы на него свысока! Такими были первые робкие шаги информатики.
Однако в те годы подобная скорость вычислений была невероятной, и передовые инструменты, способные ее обеспечить, предназначались исключительно для военных нужд, прежде всего для артиллерии. В бизнесе компьютеры начали использоваться позже. Компьютеры были тайной для всех, за исключением избранной касты специалистов. Как-то раз во время визита комиссии, состоявшей из нескольких адмиралов, проклятый компьютер то включался, то выключался, и Грейс спасла положение, небрежно положив палец на кнопку питания. Никто ничего не заметил.
Вверху — миноносец ВМС США «Хоппер». Внизу — контр-адмирал Грейс
* * *
В ВАШЕМ КОМПЬЮТЕРЕ ЗАВЕЛСЯ «БАГ»
Однажды, давным-давно, один компьютер постоянно совершал ошибки, и некоторые сомневались, что его программа правильно написана. Этим компьютером был Mark II, на дворе стоял 1947 год. После тщательного анализа оказалось, что причиной ошибок было обычное насекомое, застрявшее между контактами. Оно было обнаружено и «заархивировано», то есть вклеено в журнал происшествий. Так окончилась жизнь бедного насекомого — «бага» (по-английски bug означает «жук»). Хотя жука обнаружила не Г рейс, считается, что именно с ее легкой руки это слово вошло в обиход. С тех пор «баг» в программе обозначает уже не настоящего жука (сегодня это совершенно немыслимо), а ошибку в аппаратном или программном обеспечении. Ранее слово «баг» уже использовалось для обозначения неполадок в аппаратном обеспечении, и вот этот «жук» навсегда занял свое место в языке.
К компьютерным багам следует относиться со всей серьезностью. Они встречаются достаточно часто, обнаружить их порой очень сложно, и они могут нанести моральный и материальный ущерб на миллионы евро. Чтобы вы могли понять, как сложно бывает обнаружить баги, приведем всего один пример. Может случиться так, что несколько программ конфликтуют при выполнении единственной операции (это случается постоянно). Хотя по отдельности обе функционируют корректно, при одновременной работе обеих в неподходящий момент всегда возникает ошибка.
Некоторые происшествия, вызванные багами, весьма известны: в 1980-е годы баг в компьютерной программе медицинского оборудования привел к изменению дозы облучения при радиотерапии, что стало причиной смерти множества пациентов. Меньший резонанс среди широкой публики вызвал баг в управляющей программе прототипа ракеты «Ариан-5», ставший причиной падения ракеты. Цена этой ошибки составила 1 млрд долларов. По официальным оценкам американской комиссии, ежегодно в результате багов теряется 0,6 % валового национального продукта. Объявим же войну багам: эти мелкие ошибки могут нанести огромный ущерб.
Первый «баг» в истории, хранящийся в Национальном музее американской истории. В отличие от современных, этот «баг» был настоящим.
* * *
Взгляд в будущее
По окончании войны Грейс была зачислена в резерв ВМС. В течение всей жизни она постоянно занимала сразу несколько должностей. В 1949 году она также занялась делами частной компании, которая меняла названия: Remington, Sperry, Sperry-Rand и в конечном итоге получила название UNIVAC. Когда Грейс была принята на должность ведущего математика, компания называлась Eckert-Mauchly Corporation. Отметим, что Джон Преспер Экерт (1919–1995) и Джон Уильям Мокли (1907–1980), чьи имена носила компания, были создателями первого электронного многоцелевого компьютера, также имевшего огромные размеры, — легендарного ENIAC. Теперь они занимались не только военными задачами, связанными с баллистикой и взломом шифров, но и вопросами бизнеса. Информатика стала обычной наукой, и ее бурное развитие было уже не остановить.
В развитие информатики немалый вклад внесла Грейс Хоппер: она работала над компилятором, который со временем получил название FLOW-MATIC. 1952 год повсеместно считается годом рождения первого компилятора. Но сделаем небольшое отступление, чтобы объяснить, что это такое.
В информатике различают машинный язык, который, если можно так выразиться, понятен компьютеру, и язык программирования, который используют программисты. Машинный язык проще, чем языки программирования, так как машина «глупа», но выполняет действия быстро, а программист намного «умнее», но выполняет действия медленнее. Компиляция — крайне трудоемкий этап: его смысл заключается в том, чтобы изложить процесс, придуманный человеком, так, чтобы компьютер его понял. В 1950 году Грейс Хоппер предвидела, что программы в будущем станут дороже аппаратного обеспечения. Она отстаивала свою точку зрения вопреки всеобщему скепсису, и время подтвердило ее правоту.
Работа Грейс Хоппер над компиляторами имела неожиданный результат: так как в информатике правят бал байты, состоящие из восьми бит, ей пришлось научиться проводить расчеты в восьмеричной системе счисления. Грейс овладела этой наукой в совершенстве и часто выполняла в ней обычные расчеты, например стоимости покупок в магазине. Она забыла десятичную систему счисления, рискуя при этом личными финансами.
Любой другой удовольствовался бы тем, что создал столь ценную программу, как компилятор, позволяющий компьютерам выплачивать зарплату и формировать счета, но не такова была Грейс Хоппер. Компьютеры стали не просто машинами, способными быстро выполнять арифметические действия, — они умели «мыслить» на языке математики и понимать пользователей. Грейс совершила еще один шаг вперед: рассказывают, что ей было неудобно работать с чековой книжкой и банковским счетом, и она попыталась сделать так, чтобы машина «понимала» английский язык — язык самой Грейс, язык бизнеса и большинства пользователей. В 1956 году ей удалось добиться того, что UNIVAC при помощи ее компилятора «понял» два десятка команд на английском языке. Так началось развитие языка COBOL. Чтобы четко определить его стандарты, в 1959 году был создан специальный комитет.