
Маргарет Хэмилтон, выдающийся специалист в области компьютерных наук, возглавлявшая команду разработчиков программного обеспечения в Лаборатории приборов Массачусетского технологического института (MIT) во время программы NASA «Аполлон», скончалась 30 сентября. Ей было 90 лет. Хэмилтон считается одним из пионеров программирования и автором более 130 научных публикаций.
Именно её усилия во многом способствовали тому, что разработка программного обеспечения оформилась как самостоятельная инженерная дисциплина. В MIT она работала с 1959 года до середины 1970-х, после чего занялась предпринимательством в сфере высоких технологий и стала генеральным директором собственных компаний. В 2016 году президент США Барак Обама наградил её Президентской медалью Свободы, отметив, что Хэмилтон «определила новые формы программной инженерии и помогла запустить отрасль, которая навсегда изменила ход человеческой истории».
«Назвать Маргарет Хэмилтон первопроходцем — значит сильно преуменьшить её заслуги. Она была программным инженером в те времена, когда эта область только зарождалась, и не только сама разрабатывала передовой код, но и руководила командой, создававшей одну из самых сложных систем, когда-либо достигнутых человечеством», — заявил Оливье де Век, профессор программы «Аполлон» и исполняющий обязанности главы департамента аэронавтики и астронавтики MIT. По его словам, Хэмилтон оставалась на переднем крае системного программного обеспечения на протяжении всей своей карьеры, выступая наставником и источником вдохновения для миллионов людей.
Родилась Хэмилтон в 1936 году в Паоли, штат Индиана. В 1955 году она начала изучать математику в Мичиганском университете, затем перевелась в колледж Эрлхэм, где в 1958 году получила степень бакалавра по математике с дополнительной специализацией по философии. В 1959 году вместе с мужем переехала в Бостон. Вскоре она устроилась на временную должность в метеорологический отдел MIT, где занималась программным обеспечением для прогнозирования погоды совместно с профессором Эдвардом Лоренцем. Эта работа стала её первым опытом в программировании и впоследствии легла в основу публикаций Лоренца по теории хаоса.
В 1961 году Хэмилтон перешла в Линкольновскую лабораторию MIT, где участвовала в проекте SAGE — первой системе противовоздушной обороны США. Она писала программное обеспечение для прототипа компьютера AN/FSQ-7, использовавшегося ВВС США для поиска потенциально враждебных самолётов. В этот период она заинтересовалась надёжностью программного обеспечения — концепцией, которая тогда была новой и почти неисследованной. В 1965 году, узнав из газетного объявления о наборе в Лабораторию приборов MIT для разработки ПО с целью «отправить человека на Луну», Хэмилтон подала заявку и была принята первым программистом проекта «Аполлон» в MIT, а также первой женщиной-программистом в этом проекте.
Сначала Хэмилтон работала над программным обеспечением для беспилотных миссий «Аполлона», а затем возглавила команду, разрабатывавшую бортовое полётное ПО для пилотируемых миссий. К 1968 году она стала помощником директора, отвечающим за команду командного и служебного модулей, а над программным обеспечением «Аполлона» трудились более 400 человек. В 2009 году она рассказывала MIT News: «Второго шанса не было. Мы это знали. Мы относились к своей работе серьёзно, многие начинали этот путь в возрасте до 30 лет. Придумывать решения и новые идеи было приключением. Преданность делу и самоотдача были само собой разумеющимися. Взаимное уважение царило повсюду. Поскольку программное обеспечение было загадкой, чёрным ящиком, руководство давало нам полную свободу и доверие. Мы должны были найти способ, и мы его нашли».
Хэмилтон проявила себя как талантливый руководитель и обладала чутьём на решение проблем, что не раз спасало проект «Аполлон». Широкую известность получил случай, названный «ошибкой Лорен»: её четырёхлетняя дочь Лорен, играя с симулятором командного модуля, случайно активировала предстартовую программу P01 во время имитации полёта, что привело к сбою симулятора. Хэмилтон добавила в техническую документацию предупреждение не запускать P01 в полёте и предложила программное исправление, но её предложение отклонили, посчитав, что опытные астронавты не совершат такой ошибки. Однако во время миссии «Аполлон-8» в 1968 году Джим Ловелл непреднамеренно запустил P01 в полёте, из-за чего навигационные данные исчезли. Хэмилтон и её команду вызвали для решения проблемы, после чего предложенные ею изменения были внедрены. Это стало ранним примером «защитного» программирования — подхода, при котором ПО способно предугадывать или самостоятельно исправлять ошибки.
Самый знаменитый вклад Хэмилтон в программу «Аполлон» связан с миссией «Аполлон-11» в июле 1969 года. За мгновения до посадки модуля «Орёл» на Луну бортовой компьютер подал сигнал тревоги — ошибка 1202: из-за неисправности аппаратного переключателя система оказалась перегружена, и возникла угроза, что она не справится со сложной процедурой посадки. Однако команда Хэмилтон разработала ПО с приоритетами, способное отключать второстепенные фоновые задачи ради критически важных. Хьюстон доверился её программе и разрешил продолжить миссию, и два человека впервые ступили на поверхность Луны.
Хэмилтон продолжала работать в Лаборатории приборов до 1970-х годов. Когда программа «Аполлон» завершалась, лаборатория отделилась от MIT и стала независимой Лабораторией Дрейпера. «Маргарет оставила неизгладимый след в Дрейпере, и мы будем вечно благодарны», — сказал Джерри М. Волетц, президент и генеральный директор Draper. В 1976 году Хэмилтон основала свою первую софтверную компанию Higher Order Software, построенную на её подходе к предотвращению ошибок и отказоустойчивости. Спустя десять лет она создала ещё одну компанию — Hamilton Technologies, чей флагманский продукт Universal Systems Language (универсальный язык систем) представляет собой язык моделирования и методологию для разработки сложных программных систем с приоритетом предотвращения ошибок.
На протяжении всей карьеры Хэмилтон добивалась признания программной инженерии как отдельной дисциплины. «Я боролась за то, чтобы придать программному обеспечению легитимность, чтобы ему — и тем, кто его создаёт, — воздавали должное уважение, и потому начала использовать термин «программная инженерия», чтобы отличить его от аппаратного обеспечения и других видов инженерии», — говорила она в 2018 году в интервью El Pais. Среди её многочисленных наград — NASA Exceptional Space Act Award (2003), Fellow Award Музея компьютерной истории (2017), Intrepid Lifetime Achievement Award (2019) и включение в Национальный зал славы авиации (2022).
В последние годы Хэмилтон стала иконой для женщин в науке и технологиях, особенно после того, как в сети распространилась знаменитая фотография, где она стоит рядом с распечаткой кода своей команды. В 2015 году созданное при её участии ПО «Аполлона» было полностью выложено на GitHub, а в 2017 году она стала официальной минифигуркой Lego. «Маргарет Хэмилтон вдохновляла поколения специалистов по информатике и инженеров. Её карьера была посвящена предотвращению ошибок и тому, что она называла «обработкой неизвестного»», — отметил де Век. У Хэмилтон остались дочь Лорен Хэмилтон, зять Ричард Селесник, два внука и четыре правнука. Мемориальная служба пройдёт весной в Кембридже, штат Массачусетс.