Работающая мать в середине 1960-х была необычным явлением. Но программистка космических кораблей – вообще уникальным! Пока ее дочь спала по вечерам прямо на полу в офисе, 24-летняя Маргарет Гамильтон программировала главный бортовой компьютер «Аполлона» для американской лунной программы.
Не давайте страху завладеть вами, и не бойтесь говорить «Я не знаю» или «Я не понимаю» – глупых вопросов не бывает. И не верьте на 100% так называемым экспертам!
(совет М. Гамильтон женщинам, желающим построить карьеру в программировании; из интервью)
Уже в 80 лет Гамильтон опубликовала более 130 научных работ и основала собственную компанию Hamilton Technologies, а 23 ноября 2016 года президент США Барак Обама вручил ей Президентскую медаль Свободы — высшую гражданскую награду страны. Но тогда, в 60-х, Маргарет только закончила Массачуссетский технологический институт (MIT) и пришла на работу ведущим инженером просто на время, пока муж три года поучится в Гарвардской школе права. После этого должна была настать ее очередь — она хотела продолжить свою учебу в области математики.
До Misrosoft было еще 10 лет, и 50 – до того, как основатель Netscape Communications Марк Андриссен заявил, что «программное обеспечение покоряет весь мир». Выражения «программное обеспечение» даже не было в техзадании Маргарет Гамильтон, подчеркивает в своей книге «Цифровой Аполлон» профессор аэронавтики Дэвид Минделл – на него, соответственно, даже не выделялся бюджет. Маргарет Гамильтон и не подозревала, что ей суждено изобрести современную концепцию программного обеспечения!
Ежедневно Гамильтон пробивала отверстия в тысячах перфокарт, которые затем сутками обрабатывались в гигантской ЭВМ Honeywell — эта машина моделировала прилунение посадочного модуля «Аполлона»: сначала все нужно было отработать на Земле. Готовый код каждый день отправлялся в лабораторию компании Raytheon, где группа женщин-сотрудниц, которых между собой называли «старушками», вручную обматывали магнитные катушки медной проволокой (проволока, пропущенная через кольцо, — 1, проволока, обмотанная вокруг кольца, — 0). Никаких жестких дисков тогда и в помине не было, вся память компьютера была буквальным образом «связана» вручную. Но этот способ записи информации имел и свои преимущества — он практически не был подвержен случайному удалению.
Система хранила более 12 000 «слов» в постоянной памяти — медных проводах, сотканных работницами «Рэйтеона» — и 1 024 «слов» во временной, очищаемой памяти. «Это был первый случай применения компьютера в космическом корабле, и от него зависел успех миссии. Мы доказали, что это можно сделать. Мы сделали это на том по современным меркам крохотном объеме памяти и медленной скорости вычислений», — вспоминает Дон Айлз, работавший над лунным модулем. В Инструментальной лаборатории MIT создавались самые принципы компьютерного программирования при написании кода первого в мире портативного компьютера. Точнее, их было два, 32-килограммовых, один на посадочном лунном модуле «Орел» и второй на командном модуле «Колумбия», предназначенном чтобы доставить астронавтов с Земли на Луну и обратно. Созданные инженерами МТИ Хэлом Лэнингом и Диком Баттоном, это были одни из первых компьютеров на интегральных микросхемах вместо транзисторов. И первая система бортовой навигации с возможностью дистанционного управления — предшественник компьютеризованной системы навигации современных пассажирских самолетов. По словам Маргарет, «когда мы впервые этим занялись, никто в этом не разбирался. Это был Дикий Запад, без известных направлений. Нас никто не учил».
Однажды маленькая дочь Маргарет, как обычно играя по вечерам в лаборатории, стала нажимать на кнопки симуляции, и запустила программу, которая должна была выполняться перед запуском – но при этом симуляция уже «летела» на Луну. У компьютера было так мало памяти, что он стёр все данные по навигации, необходимые для полёта. «Я подумала: боже мой, это ведь может случайно произойти и во время реальной миссии. Я предложила изменить программу, чтобы предотвратить возможность запуска предстартового сегмента во время полёта. Однако начальство из MIT и НАСА решило, что астронавты слишком хорошо натренированы, чтобы так ошибиться. И в процессе полёта уже в следующей миссии – «Аполлон-8» – один из астронавтов на борту случайно сделал именно то, что сделала Лорен. Ошибка Лорен! Я подняла бучу и настояла, чтобы миссию перенастроили. После этого они уже, конечно, позволили внести правки в программу», — вспоминает Маргарет.
Читайте также нашу статью о первой в мире женщине — профессоре математики Софье Ковалевской