Skip to content

Памяти — Маргарет Гамильтон, 17 августа 1936 – 30 сентября 2026

← Назад на Плечи Гигантов

Margaret Hamilton seated inside an Apollo command module mockup, 1969
Гамильтон внутри макета командного модуля «Аполлона», 1969. Фото: NASA (общественное достояние).
Памяти

Margaret Hamilton

17 августа 1936 – 30 сентября 2026 · Учёный-компьютерщик · Руководитель бортового ПО «Аполлона» · Мать «программной инженерии»

Маргарет Гамильтон возглавляла команду MIT, написавшую бортовое программное обеспечение программы «Аполлон» — код, который вёл экипажи к Луне и обратно, на компьютере с долей памяти современных часов. Она делала это, изобретая дисциплину по ходу дела: именно она ввела термин программная инженерия — в то время, когда это словосочетание воспринимали как шутку.

Из Паоли в Кембридж

Маргарет Хифилд родилась в Паоли, штат Индиана, в 1936 году и частично выросла на Верхнем полуострове Мичигана; её отец был поэтом и профессором философии. Она изучала математику — с дополнительной философией — в колледже Эрлхэм и окончила его в 1958 году, в том же году выйдя замуж за Джеймса Гамильтона. Их дочь Лорен родилась в 1959 году.

Она собиралась поступать в аспирантуру Брандейса по абстрактной математике. Вместо этого, чтобы содержать мужа во время его учёбы на юридическом в Гарварде, она устроилась на должность, которая должна была быть временной, в MIT — писать ПО для прогнозирования погоды для Эдварда Лоренца (да, того самого Лоренца из теории хаоса) на компьютерах LGP-30 и PDP-1. Курсов программирования не существовало; учились на практике. Она сразу оказалась в этом хороша.

Это привело её в Линкольновскую лабораторию MIT и к проекту SAGE — континентальной системе ПВО, одной из первых потребовавшей ПО, которое не имело права отказать. В Линкольн-лаб Гамильтон заработала репутацию человека, чинившего программы, которые не мог починить никто другой; коллеги начали отдавать ей самые тяжёлые и странные баги. Она училась отказоустойчивости на машине, охранявшей континент.

«Аполлон»

В 1965 году Лаборатория приборостроения MIT — позже Draper — выиграла контракт NASA на бортовую навигацию «Аполлона». Гамильтон стала первым программистом, нанятым на проект «Аполлон» в MIT, и первой женщиной, писавшей для него код. Она начинала с беспилотных миссий и поднялась до руководителя команды, писавшей полётное ПО для пилотируемых командного и лунного модулей. К 1968 году она отвечала за ПО командного и служебного модуля; на пике работ более 400 человек писали код для «Аполлона».

Машина, которую должен был вести её код, была знаменита своей малостью: бортовой компьютер «Аполлона» работал на ~85 килогерцах и имел около 72 килобайт верёвочной памяти — буквально сотканной, провод за проводом, через ферритовые кольца «маленькими старыми леди» — фабричными работницами, вручную продевавшими каждый бит каждой программы. ПО не записывалось в эту память — оно в неё изготавливалось. Пропатчить потом было нельзя.

Margaret Hamilton beside the printout stack of Apollo Guidance Computer software
Знаменитая фотография: Гамильтон рядом с распечаткой ПО бортового компьютера «Аполлона» — почти с неё ростом. Каждая страница была заработана. (Draper Laboratory / общественное достояние.)

Её дочь нашла баг раньше NASA

Одна из лучших историй в истории ПО — про ребёнка. Лорен Гамильтон, которой было около восьми, приходила в лабораторию по выходным и играла в астронавта на тренажёре. Во время одного визита она нажала клавиши посреди симуляции и запустила предстартовую программу во время «полёта» — стёрв навигационные данные из компьютера. Гамильтон поняла, что произошло, и потребовала добавить проверку ошибки, чтобы эта последовательность никогда не могла запуститься в полёте. Ответ сверху: астронавты обучены никогда не ошибаться; такого не может быть.

На «Аполлоне-8» астронавт Джим Ловелл — сделав в точности то, что делала Лорен — случайно запустил ту же программу, стёрв навигационные данные на орбите Луны. Команда Гамильтон работала круглосуточно, восстанавливая таблицы и возвращая экипаж домой. Проверку, о которой она просила, добавили после. Каждый программист узнаёт урок: если человек может это сделать — человек это сделает.

Три минуты, доказавшие её правоту

Её глубочайшей одержимостью была обработка ошибок — радикальная для того времени позиция. От ПО ждали, что оно либо работает, либо падает; Гамильтон настаивала, что оно должно продолжать работать сквозь отказ: сообщать экипажу, что не так, и в первую очередь защищать самую приоритетную работу. ПО «Аполлона» работало под исполнительной системой приоритетного планирования с «приоритетными дисплеями», выводившими тревоги, а не прятавшими их.

20 июля 1969 года. «Аполлон-11» снижается к Морю Спокойствия, когда бортовой компьютер начинает выдавать тревоги переполнения исполнителя 1201 и 1202 — от машины требуют больше, чем она может, потому что радар сближения шлёт ей ненужные данные. Дизайн Гамильтон делает ровно то, для чего она его создала: сбрасывает низкоприоритетную работу, продолжает вести посадку и сообщает экипажу, что происходит. В Хьюстоне 24-летний инженер Джек Гарман — выучивший коды тревог наизусть — объясняет руководителю полёта Стиву Бейлсу, что они значат. Команда уходит наверх: «go». Армстронг и Олдрин садятся.

Урок, который она нам оставила: тревоги были не сбоем — они были системой, делающей ровно то, для чего её создали, в условиях, которые никто не мог полностью предвидеть. Писать ПО, которое говорит правду, когда ему тяжело; которое ранжирует важное и деградирует изящно, а не умирает молча. Эта идея — ошибки как спроектированное поведение, а не сюрпризы — до сих пор сердце хорошей инженерии, и тот же инстинкт стоит за инструментами, анализирующими код до его запуска.

«Программная инженерия»

Когда Гамильтон начала называть их работу «программной инженерией», старшие коллеги смеялись — инженерией было железо; ПО было тем, что набирают на клавиатуре. Она продолжала использовать термин, пока сама работа не сделала его неоспоримым: дисциплина с требованиями, проектированием, тестированием, симуляцией и ревью. Фраза пережила скептиков. Сегодня это название профессии — и она не просто придумала его, она показала, что оно значит, по пути к Луне.

После «Аполлона» — инженерия через конструирование

Гамильтон посвятила следующие десятилетия формализации того, чему её научил «Аполлон»: системы должны быть корректны по замыслу, а не отлажены до корректности постфактум. В 1976 году она стала соосновательницей Higher Order Software, создавшей инструмент проектирования USE.IT — системы, специфицированные по аксиоматическим правилам, так что целые классы ошибок предотвращаются до запуска хоть одной строки. В 1986 году она основала Hamilton Technologies в Кембридже, разработав Universal Systems Language (USL) и её 001 Tool Suite — «разработка до факта», системная инженерия, в которой ПО наследует строгость системы, которой служит. Этой работой она руководила до конца жизни.

Награды

President Obama awarding Margaret Hamilton the Presidential Medal of Freedom, 2016
Президент Обама вручает Гамильтон Президентскую медаль Свободы, 2016 — «она символизирует поколение невоспетых женщин, помогших отправить человечество в космос». (Фото Белого дома — общественное достояние.)

Последнее слово

Гамильтон умерла 30 сентября 2026 года в Кембридже — в пределах видимости лаборатории, где она впервые узнала, чем может быть ПО. Ей было 90. Остались её дочь Лорен — та самая девочка, чьи пальцы когда-то нашли баг, который процессы NASA найти не смогли, — зять, два внука и четыре правнука. Администратор NASA назвал её «пионером, чья работа помогла сделать «Аполлон» и первые полёты человечества к Луне возможными». Панихида запланирована в Кембридже.

"Второго шанса не было. Мы это знали. Мы относились к работе серьёзно, многие из нас начинали этот путь чуть за двадцать… Нам нужно было найти путь — и мы нашли. Оглядываясь назад, мы были счастливейшими людьми на свете; выбора не было — кроме как быть пионерами."
— Маргарет Гамильтон, MIT News, 2009

Почему она среди Гигантов

Этот сайт существует, чтобы учить людей программировать. Гамильтон — человек, доказавший, что программирование способно нести вес человеческих жизней, — и что для этого нужны строгость, смирение и готовность проектировать под отказ, который надеешься никогда не увидеть. Мать, отлаживающая код в лаборатории в полночь; компьютер, отказавшийся сдаваться на спуске к Морю Спокойствия; и слово — инженерия, — которое она сделала истинным, просто делая это. Именно для этого и есть Гиганты.

Источники и дальнейшее чтение

← Назад на Плечи Гигантов