CNN TürkABD’nin bütçe açığı 1,99 trilyon dolara yükseldiPunchI’d have left Real Madrid if I were Vinicius, says MourinhoInquirer63 of 77 MV June Aster fire victims identified; probe ongoingESPNWhy do Liverpool's big-money transfers keep failing to deliver?The Jerusalem PostPro-Palestinian protesters demand cancellation of Israeli dance performance at Madrid theaterFox NewsJerry Seinfeld turns tables on radical anti-Israel agitators after chaotic Chicago stunt backfiresZDF heuteEntdecken Sie das ZDF-NachrichtenstudioColliderCBS’ New Crime Thriller Officially Becomes a Paramount+ Streaming SmashFootball ItaliaSerena defends Juventus forward Woltemade: ‘He fits Spalletti’s game’النهارزيلينسكي: إعفاء موسكو من عقوبات أميركية مكافأة لبوتينn-tvAusschreitungen befürchtet: Protest in Frankreich - Minister schließt Blendgranaten-Einsatz nicht ausVanguardGunmen storm Plateau community, kill four vigilantes
The Daily Newsstand · Free, Always
Saturday, October 17, 2026

От медной шахты до Луны: путь Маргарет Гамильтон

Translate

Любой, кто интересуется освоением космоса, знает дату 20 июля 1969 года: человек впервые ступил на Луну. Правда, лишь чудо спасло нас от первой лунной катастрофы, и у этого чуда есть автор — Маргарет Гамильтон.

Источник фото + авторская доработка в нейросети

Источник фото + авторская доработка в нейросети

Дело в том, что за несколько минут до посадки «Аполлона-11» бортовой компьютер начал выдавать сигналы тревоги 1201 и 1202. Ни Нил Армстронг, ни Базз Олдрин не имели никакого представления, что это за сигналы: вероятность их появления была практически нулевой. Сигналы свидетельствовали о том, что компьютер перегружен: механизмы планирования задач не могли выполнять свои функции, задач было слишком много, и они полностью исчерпывали вычислительные ресурсы. Радар сближения начал передавать информацию в колоссальных объёмах, хотя она совершенно не требовалась. Официальная причина — непреднамеренное переключение тумблера одним из астронавтов, но причина на самом деле не важна. Ведь было лишь два варианта: либо прерывать миссию, либо рисковать главным для Соединённых Штатов космическим событием эпохи. И американские астронавты выбрали… ничего не делать.

Всё потому, что само программное обеспечение выполнило перезапуск с контрольной точки: очистило очередь процессов, сохранило все критически важные задачи и отбросило менее приоритетные — без участия инженеров с Земли или астронавтов. Несмотря на ошибку, было получено прямое разрешение на продолжение посадки, и Луна была покорена.

За этим покорением стоит множество людей, но человеком, предвидевшим невозможную ошибку и то, что на неё нужно реагировать, была Маргарет Гамильтон — математик, программист, инженер. Её чаще знают как автора кода для лунной миссии, но она была одной из тех, кто развивал проектирование систем, способных пережить любые ошибки, в том числе и те, которые, как тогда считалось, человек просто не может совершить. В некотором роде Маргарет действительно спасла космическую программу своего времени, после чего вошла в число серьёзных мыслителей, которые рассматривали программное обеспечение как полноценную инженерную дисциплину, и посвятила всю жизнь развитию этой дисциплины.

Маргарет Гамильтон работала над проектами для миссий «Аполлон». Более чем очаровательная девушка. (Если верить газете, которая выступает источником фото)

Маргарет Гамильтон работала над проектами для миссий «Аполлон». Более чем очаровательная девушка. (Если верить газете, которая выступает источником фото)

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

❯ Девочка из маленьких городов, которая очень хотела быть самостоятельной

Маленькая Маргарет. Фотогарфия взята из ютуб-видео, скриншот улучшен нейросетью для повышения качества.

Маленькая Маргарет. Фотография взята из ютуб-видео, скриншот улучшен нейросетью для повышения качества.

Маргарет родилась в августе 1936 года в штате Индиана, но место рождения не стало её малой родиной. Семья постоянно переезжала; в раннем детстве она успела пожить в Огайо и Мичигане. Переезды были связаны с карьерой родителей, а сама Маргарет из-за такой ситуации с самого раннего детства привыкла постоянно находиться в классах с людьми, которых не знала, переезжать в новые места и быстро адаптироваться к новым условиям.

Переезжали они в первую очередь из-за того, что родители Маргарет были преподавателями, а так как она родилась непосредственно перед тем, как в Соединённых Штатах разразился достаточно серьёзный кризис, связанный с возможностью работы в этой сфере, её отец был профессором, преподавал английский, философию и поэзию, полгода во Второй мировой войне находился на фронте. Мать была учительницей в старшей школе. У девочки была тесная связь с бабушками и дедушками. Любопытно, что один дед был квакером, другой — протестантским пастором. Бабушки также работали в творческих профессиях: журналистка и музыкант. Поэтому культурный бэкграунд в семье был достаточно серьёзный.

Очень велика была роль музыки в семье: проводились многочисленные мероприятия, где играли на фортепиано все члены семьи. Сестра Маргарет стала профессиональной пианисткой, зарабатывала на проведении концертов. При этом сестра была младшей, но играла существенно лучше, чем наша героиня, что в семье было поводом для достаточно обычных обидных шуток. Сама Маргарет не очень походила на типичное представление о подростке из такой семьи: она активно бунтовала против засилья классики, любила восходящего Элвиса Пресли и The Doors.

Маргарет в юности. Фотография взята из ютуб-видео, скриншот улучшен нейросетью для повышения качества.

Маргарет в юности. Фотография взята из ютуб-видео, скриншот улучшен нейросетью для повышения качества.

Любопытно, но моменты определённого юношеского бунта никак не сказались на её школьной жизни. Маргарет любила математику, прежде всего абстрактные рассуждения и доказательства: ей нравилось выводить формулы и доказывать теоремы, но не нравилось заучивать их наизусть. Её сильные стороны — геометрия, алгебра и математическая логика. А вот что она действительно не любила, так это обязательный для всех девочек того времени предмет «домоводство». Причём это были не труды для девочек, которые знает любой человек, закончивший советскую или российскую школу. Это был предмет, который формировал образцовую американскую домохозяйку. В те годы, когда в школе ещё училась Маргарет, там проходили вопросы кулинарии; очень серьёзный блок был посвящён экономике и управлению бюджетом. То есть женщина должна была уметь сравнивать цены в магазинах, рассчитывать налоги, понимать, как вести семейный бюджет. В целом идея на самом деле достаточно разумная, если бы не обязательный характер этого предмета. Далее — работа с тканью, уход за одеждой, пошив базовых вещей. Важнейшим блоком выступали навыки ухода за младенцем, вопросы правильной уборки дома, правила гигиены — то есть всё то, чем должна была заниматься обычная американская женщина. Лишь в 1970-х годах этот предмет был существенно переработан.

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

Она очень рано пошла работать, причём не из-за какой-то глубокой нужды, а потому что работа была важной частью её самореализации, и эта черта осталась с ней на протяжении всей жизни. В 16 лет она водила экскурсии по заброшенной местной медной шахте. Эту шахту несколько раз пытались коммерчески использовать, а позже превратили в туристическую достопримечательность. Начинала там Маргарет гидом, а через несколько лет работы заняла свою первую руководящую должность: нанимала других гидов, занималась продажей сувениров, вела финансовые дела. Так получилось, что владельцем шахты был человек, который не имел никакого образования, но имел большой талант выбирать людей, и он спокойно переложил все функции управления на молодую девушку, и она с этим прекрасно справилась, не забывая о том, что нужно повышать оплату для себя и своих подопечных. Гамильтон всегда была недурным руководителем, и любопытно, что это раскрылось уже в её юности.

Весьма любопытен её путь в то, что тогда называли «большой математикой». У Маргарет не было большой группы репетиторов и прочих достаточно характерных вещей для определённых вершин в таком ремесле, которые встречались у других будущих великих учёных. Более того, женщина в одном из интервью вспоминала, как заявила своему отцу, что она ни при каких условиях не пойдёт в колледж, и это её взрослое самостоятельное решение. Как я уже говорил, девочка весьма активно бунтовала. Её отец проявил очень серьёзный педагогический талант и просто с ней согласился, разрешил ей не идти в колледж. Ближе к колледжу отношение к этому, конечно, изменилось, и Маргарет с однозначным успехом поступила в университет.

Вы уже знаете о том, что она работала на шахте и проявила себя как организатор, но при этом у неё был ещё и опыт работы в колледже. Нет, конечно, речи о том, что юная Маргарет там преподавала: она занималась достаточно тяжёлой работой — работала разнорабочей на внутренней линии питания в кафетерии, мыла посуду, убирала еду с тарелок, ну и так далее. Но это была работа днём, а работала она ещё и в ночную смену на телефонном коммутаторе. Местная аудитория явно представляет себе, что это такое, но на всякий случай поясню. Она занималась соединением звонков вручную, вставляя штекеры в соответствующие гнёзда, как телефонистки в старых фильмах. Сама Маргарет вспоминала очень забавную ситуацию, когда к ней попал звонок из местного водного департамента. Проблема была в том, что водных департаментов было два, и она соединила звонившего с другим водным департаментом, и они начали между собой спорить, кто же из звонивших действительно представляет водный департамент и кто кому он звонит. При этом это была не линия Bell System, через которую прошло просто колоссальное количество будущих видных специалистов информационных технологий; это был телефонный коммутатор или его чуть более масштабный аналог, находившийся по какой-то причине в университете.

Так что в университет пришла девочка, которая уже обладала достаточно широким перечнем навыков, определённым жизненным опытом и готовая двигаться дальше в своей карьере. Поступила она в Мичиганский университет и честно признаётся, по какой причине пошла именно туда: дело было в большой стипендии. В отдельных биографических статьях забывают ещё одну любопытную особенность этой ситуации: она имела серьёзную стипендию и при поступлении в другие учебные заведения, например в Стивенс-колледж, но последний был только для женщин. Маргарет была достаточно амбициозна и хотела сделать серьёзную карьеру, поэтому она осознанно отказалась от поступления в женский университет и направилась в общий.

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

Позже будущая мисс Гамильтон направилась в колледж Эрлхэм, причём по весьма любопытной причине: это был частный колледж, где учились практически все её родственники — мать, тёти, бабушка, дед. Но о нём она очень много слышала. Более того, это был куда меньшее по размеру учреждение, чем Мичиганский университет, и Маргарет не хотела оставаться в некотором роде в обезличенном крупном учреждении, поэтому после первого своего семестра она отправилась в маленькую высшую школу, закончив свой первый семестр с высочайшим результатом, в том числе по её профильной математике.

Но тут есть очень важная черта: в отличие от Мичигана, у неё не было стипендии в Эрлхэме, и отсутствие стипендии в некотором роде привело её в мир программирования. Дело в том, что примерно на рубеже 1956/57 годов (точной даты не сохранилось) Маргарет пошла на работу в страховую компанию Travelers Insurance. У этой компании была серьёзная программа: они частично оплачивали учёбу, а студент часть времени работал в фирме, часть времени учился. Работа была, мягко скажем, далеко не самой сложной, но невероятно нудной. Наша героиня работала в большом преимущественно женском коллективе, и эти женщины сидели и занимались массовыми статистическими расчётами, работая на Marchant — это старые механические вычислительные машины. И именно с этой работой связана одна из интересных историй, которую сама Маргарет выделяла как то, что прямо повлияло на её мотивацию.

Калькулятор Marchant XLA, выпускавшийся с 1923 года. Один из вариантов; сказать, с какими конкретно работала Маргарет, не представляется возможным. Источник изображения

Калькулятор Marchant XLA, выпускавшийся с 1923 года. Один из вариантов; сказать, с какими конкретно работала Маргарет, не представляется возможным. Источник изображения

Рабочий день в этой фирме заканчивался весьма специфично: в 16:33. Это было нужно для того, чтобы избежать пробок, создаваемых выходящими сотрудниками, и заторов на близлежащих дорогах. И вот люди за 3 минуты до конца рабочего времени начинали смотреть на часы, собираясь как можно быстрее покинуть свою работу, и в 16:33 срывались и в прямом смысле слова бежали к выходу. И это по какой-то странной причине до глубины души поразило Маргарет: она не хотела посвятить всю свою жизнь такой однотипной работе, от которой ей захочется убежать в самом прямом смысле. Была ещё одна весьма любопытная история: Маргарет вспоминала, что периодически по фирме разносился слух, что появились некие новые вещи, которые назывались компьютерами, и эти компьютеры отнимут все рабочие места у людей, которые работают на этих ручных счётных машинах. Люди, которые постоянно обсуждали эти новости, практически не понимали, что же это будут за машины, но жутко боялись их. Эта паника была совершенно не беспочвенной: в итоге компьютеры действительно заменили всех этих женщин, но при этом благодаря компьютерам было создано несоизмеримо большее количество рабочих мест, чем это было при полуручном подсчёте. Правда, было ли от этого легче женщинам, которые умели только быстро складывать цифры? Этот вопрос оставим открытым. Позже Маргарет неоднократно приглашали руководить отделами страховой статистики, но она каждый раз отказывалась, несмотря на то что прекрасно справлялась с этой работой.

Справлялась она в первую очередь благодаря тому, что уровень преподаваемой математики в том учреждении был крайне высок. Одним из преподавателей стала Флоренс Лонг — глава математического отделения колледжа, человек, который повлиял на Маргарет в наибольшей степени. Флоренс не просто глубоко преподавала математику в учреждении, она ещё и отдельно, вне вуза, занималась с наиболее одарёнными студентами.

И именно знакомство с этой женщиной во многом повлияло на то, чтобы Маргарет направилась дальше в науку и стала развивать математику. Тем временем она в 1958 году выходит замуж, становится миссис Гамильтон, недолгое время преподаёт математику в школе. Тогда у неё были серьёзные проблемы с работой: несмотря на навыки и возможности, она тяжело заболела пневмонией и просто не могла проходить собеседования. Маргарет явно была натурой авантюрной, так как, имея совершенно небольшой опыт изучения французского языка, она согласилась преподавать его в школе, потому что учреждение было крайне заинтересовано в преподавателе французского — у них его физически не было. Её педагогическая карьера в школе заняла всего лишь год, потому что она ожидала, пока её муж закончит обучение в том же университете, где она училась.

Свадебная фотография. Фотогарфия взята из ютуб-видео, скриншот улучшен нейросетью для повышения качества.

Свадебная фотография. Фотография взята из ютуб-видео, скриншот улучшен нейросетью для повышения качества.

Это были два молодых, весьма талантливых человека, в хорошем смысле слова талантливых: муж хотел получить степень PhD по химии, она хотела того же, но по математике. Тем временем у молодой семьи родилась дочь — это было всего лишь через год после свадьбы. И тут была весьма серьёзная проблема: два учёных просто физически не могли содержать семью, и пришлось выбирать, кто будет получать учёную степень, а кто на протяжении этого времени будет содержать семью. Маргарет в итоге устроилась на работу, а её муж направился в Гарвард получать юридическое образование. В 1967 году пара развелась, при этом никаких комментариев о причинах Маргарет никогда не делала, её муж построил весьма неплохую юридическую карьеру, но о том, что у них были какие-либо пересечения нигде не упоминалось.

Маргарет с дочерью и мужем. Фотогарфия взята из ютуб-видео, скриншот улучшен нейросетью для повышения качества.

Маргарет с дочерью и мужем. Фотография взята из ютуб-видео, скриншот улучшен нейросетью для повышения качества.

❯ Путь в программирование

Эдвард Н. Лоренц. Источник изображения

Эдвард Н. Лоренц. Источник изображения

Но нет худа без добра: именно эта откровенно вынужденная ситуация привела миссис Гамильтон в информационные технологии. Её первая работа в этом направлении была в MIT у Эдварда Н. Лоренца, профессора метеорологии.

Уважаемому профессору нужен был человек для программирования, и Маргарет туда приняли, несмотря на то что у неё не было никакого опыта общения с техникой. Но в его офисе нашу героиню ждал LGP-30. И именно сам профессор помог ей овладеть компьютером. Но тут на самом деле нужно немножко пояснить, что значит «овладеть»: он вручил ей подробные инструкции и сказал работать, правда дал несколько уроков, как делать это несколько быстрее. В принципе, это совершенно классическая ситуация для ранней сферы информационных технологий: никакой реальной школы, помощников, системного обучения. Дали тебе инструкцию — плыви. Сможешь выплыть — ты молодец, не сможешь — значит, ты непригоден.

LGP-30. Источник изображения

LGP-30. Источник изображения

Непосредственно по своей работе Маргарет занималась программированием модели прогнозирования погоды. В тот момент профессор Лоренц был пионером теории хаоса, и это была одна из первых серьёзных работ по численному моделированию атмосферы. Программирование велось на машинных кодах — двоичных и шестнадцатеричных. Маргарет как-то вспоминала, что она сама придумала, как исправлять ошибки, не перебивая всю ленту заново, а просто пробивала или заклеивала дырки в нужных местах, меняя биты вручную, потому что данные программы хранились на бумажной ленте. За что её профессор очень хвалил, хоть и с невероятной иронией, ввиду того что она искренне считала, что это она придумала такой способ ускорения работ.

Тот самый PDP-1. Источник изображения

Тот самый PDP-1. Источник изображения

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

Далее она занималась в исследовательском проекте "Project on Mathematics and Computation", целью которого было создание системы разделения времени, для того чтобы несколько пользователей могли одновременно работать на одном компьютере. В рамках этой системы Гамильтон продолжала работать именно над прогнозированием погоды, сменив свою технику на компьютер PDP-1, у которого было колоссальное преимущество: он был для своего времени по-настоящему интерактивен. На нём можно было работать в реальном времени, а не передавать перфокарты операторам.

В начале 1960-х годов произошло совершенно неожиданное для Маргарет знакомство с миром компьютеров и её шаг в сторону от классической математики. И её путь очень похож на путь других женщин, как, например, и мать Тима Бернерса-Ли, которая тоже успела поспать на раскладушке, ожидая «своих» часов доступа к технике.

Маргарет Гамильтон уже тогда была отмечена профессором Лоренцем: в статьях ей выражались благодарности за помощь в вычислениях. В наше время, к 2020 году, мисс Гамильтон гарантированно считалась бы соавтором статьи Лоренца и его разработки. В то время, к сожалению, подобное было не принято. Но благодарность в научной работе не была просто формальностью и прекрасно показывала, что её вклад в исследование заключался не только в механических вычислениях.

❯ SAGE: когда одного работающего кода недостаточно

В том же 1961 году Маргарет снова меняет место работы. Дело было в том, что в лаборатории профессора Лоренца просто не было денег. В то время не было принято платить специалистам этого уровня — не потому, что они были плохие или результаты работы были низкими, просто такова была практика. Поэтому Маргарет покинула лабораторию, расставшись со своей предыдущей командой в самых лучших отношениях, и решила стать программистом.

Источник изображения

Источник изображения

Программистов искали в Линкольнской лаборатории MIT. Программистами мы их называем, конечно, лишь для удобства прочтения данного текста. Искали они тогда специалистов, которые могли выполнить конкретную задачу. В данном случае нужен был человек, способный создать программу, умеющую взять радиолокационную информацию, отличить сигнал самолёта от шума, а затем отслеживать самолёт.

Дело было в том, что Маргарет попала на работу с системой SAGE — одним из любопытнейших объектов холодной войны в Соединённых Штатах. Это очень серьёзная полуавтоматическая противовоздушная система обороны, которая должна была собирать данные с радаров, отслеживать вражеские самолёты и помогать операторам принимать решения. Это была одна из первых действительно больших компьютерных систем, работавших в режиме реального времени, и поистине масштабный проект, который объединял множество компьютеров, радаров, сетей связи и невероятное число операторов.

Компьютер AN/FSQ-7 в компьютерном зале SAGE, занимающий второй этаж основного «куба» Центра управления секторами SAGE. Источник изображения

Компьютер AN/FSQ-7 в компьютерном зале SAGE, занимающий второй этаж основного «куба» Центра управления секторами SAGE. Источник изображения

Гамильтон писала программы для XD-1, первого AN/FSQ-7. Тогда считалось, что важно было знать язык и инструкции конкретного компьютера, поэтому её знания были весьма ограниченны. Более того, у неё была маленькая дочь, и она не могла отправиться на полноценное обучение, предназначенное для всех новых сотрудников, поэтому выучила всю необходимую информацию самостоятельно. И когда её коллеги вернулись, она уже овладела всем необходимым, порой зная о задачах больше, чем те люди, которых обучали.

В системе SAGE была очень интересная проблема: в то время считалось, что чем хитрее и запутаннее твой код, тем круче ты как автор. Ну а программисты уходили, и после них оставалась совершенно не работающая, жутко сложная «шляпа», с которой нужно было разобраться. В руки мисс Гамильтон попал весьма любопытный образец программы, комментарии в которой были даны на латыни и греческом, с которыми, естественно, адекватный человек работать ни при каких условиях не мог. Но Маргарет справилась, и именно тогда она приняла для себя очень важное решение: она будет вести серьёзную документацию для программ и настаивала на том, чтобы её подчинённые в дальнейшем поступали так же.

Именно в SAGE Гамильтон также столкнулась с проблемой, которая станет центральной в её работе: как связать ошибку с конкретной программой. Проблема была в том, что в те годы попросту не существовало систем отслеживания ошибок. И она придумала, как это фиксировать: когда компьютер зависал, программист позировал рядом с регистром, в котором была ошибка, и это фотографировали на Polaroid.

Достаточно важен и морально-этический аспект работы в SAGE, ведь это была программа, напрямую связанная с холодной войной. Но Маргарет занимала достаточно сдержанную позицию: она была техническим специалистом и выполняла свою работу в полной мере, с учётом того, что конкретно в её семье были очень разные отношения к самой холодной войне. Так, среди её родственников были люди, которые по религиозным убеждениям не участвовали даже во Второй мировой войне, и был отец, который находился непосредственно на фронте. Также и к холодной войне все относились по-разному. Но работу надо было выполнять максимально качественно.

Опыт работы в этой огромной структуре для Гамильтон был важен, потому что она пришла к глубоким личным убеждениям, что код должен быть не просто исполняемым, но и понятным, проверяемым. Он должен быть пригоден для дальнейшей работы других инженеров. Того, что программа работает сейчас, стало недостаточно: нужно, чтобы она работала надёжно.

❯ «Аполлон»: ответственность за систему, а не за отдельную программу

Маргарет Х. Гамильтон на макете командного модуля «Аполлона-12», 1969 год. Источник изображения

Маргарет Х. Гамильтон на макете командного модуля «Аполлона-12», 1969 год. Источник изображения

И вот мы приближаемся к той эпохе, по которой Маргарет Гамильтон знают даже люди, достаточно далёкие от сферы информационных технологий. Это её работа над программой «Аполлон». Когда она услышала об этой программе, то сама решила отложить аспирантуру. Это был рубеж 1963–1964 годов. В то время она уже была готова к учёбе в Брандейсе по направлению абстрактной математики. Но увидела объявление в газетах, что ищут людей для подготовки отправки человека на Луну. Это, конечно, некоторое преувеличение, но специалистов действительно набирали в том числе и с улицы, потому что никому не было дела до того, какая у тебя база. Очень легко проверялись качество и возможность выполнения тобой определённой работы. А Маргарет подала своё заявление сразу двум менеджерам по набору персонала, и оба предложили ей работу одновременно. Она знала, какую работу хочет, но не хотела обижать второго менеджера. Они просто подкинули монету, и монета направила её в отдел бортового полётного программного обеспечения. Порой судьба выбирает за вас — практически осознанно.

Маргарет была первой женщиной, которая присоединилась к проекту по разработке, а также первым программистом, которого наняли. В то время работали мужчины, и это были мужчины-инженеры, но они были аппаратными инженерами и программированием попросту не занимались. А у неё был именно опыт конкретного программирования, поэтому в MIT решили, что она справится с задачей.

Обратная сторона изображения выше. Источник изображения. Фрагмент перевода текста: Лаборатория приборов разработала систему наведения для командного модуля «Янки Клипер» и лунного модуля «Интрепид», а также запрограммировала бортовые компьютеры для каждого из космических аппаратов. Мисс Гамильтон возглавляла группу, отвечавшую за программирование компьютеров, включая перепрограммирование одной части программы «Интрепида», что помогло сделать возможной точечную посадку в Море Бурь.

Обратная сторона изображения выше. Источник изображения. Фрагмент перевода текста: Лаборатория приборов разработала систему наведения для командного модуля «Янки Клипер» и лунного модуля «Интрепид», а также запрограммировала бортовые компьютеры для каждого из космических аппаратов. Мисс Гамильтон возглавляла группу, отвечавшую за программирование компьютеров, включая перепрограммирование одной части программы «Интрепида», что помогло сделать возможной точечную посадку в Море Бурь.

Любопытнее всего то, что её наняли работать над программным обеспечением, но что такое программное обеспечение, многие инженеры просто не понимали. Более того, Дик Баттен, один из руководителей всего проекта, признался позже, что когда ему сказали, что он, Дик, будет отвечать за направление «software», то он подумал, что будет отвечать за некую мягкую одежду (комментарий: от soft — мягкий и ware — изделия, товары, изделия из какого-либо материала). И тут у нас речь о руководителе высокого уровня. Инженеры также не умели в полной мере общаться с теми людьми, которые будут настраивать ПО. Это было очень любопытное время, когда технологии уже шагнули, причём достаточно далеко, а люди, которые должны ими пользоваться, до этого ещё не дошли.

А сама Маргарет Гамильтон занималась системным программным обеспечением. Это был уровень выше отдельных алгоритмов, то есть управление приоритетами, взаимодействием компонентов, работа над человеко-машинным интерфейсом. В период «Аполлон-8» и «Аполлон-11» в её группе было около сотни человек и несколько сотен других специалистов, которые передавали свой код для того, чтобы его включили в общую систему. И именно за интеграцию и корректность сборки отвечала она и люди, с которыми они работали. К середине 1968 года над программным обеспечением «Аполлона» работало уже более четырёхсот человек.

Во время своей работы Маргарет выделила четыре наиболее серьёзные группы проблем, над решением которых работала.

  • Проблема приоритетов в асинхронной среде. Несколько задач могли выполняться одновременно, но в каждый момент времени только одна задача могла занимать процессор. Нужно было определить, какая задача важнее, какая задача может прервать другую, что должно произойти при конкретной чрезвычайной ситуации. Каждой задаче ставился уникальный приоритет, и в случае возникновения аварийной ситуации должна была работать задача с наибольшим приоритетом.

  • Проблема взаимодействия компонентов. Программа может работать сама по себе, но при интеграции с другими частями системы может произойти сбой. Гамильтон и её команда отвечали как раз за то, чтобы модули могли работать вместе. Они проверяли возможности для взаимодействия, искали конфликты не только работающие в стандартных условиях, но и те, которые могли возникнуть в нестандартных условиях.

  • Проблема управления изменениями. Дело в том, что постоянно выпускались новые версии программного обеспечения для командного и лунного модулей. Гамильтон лично создала концепцию, которую назвала офлайн-версией: то есть изначально все изменения тестировались в отдельной версии и после этого включались в основную сборку. Более того, она начала готовить меморандумы, то есть рассылала всем участникам работы список того, что вошло в новую версию.

  • Самая серьёзная проблема — ответственность за финальный результат, потому что успех работы отдельного алгоритма никоим образом не означает, что работает вся система. Маргарет смотрела на систему как на единое целое, в котором всё было взаимосвязано.

    Те самые меморандумы. Слева — рукописная записка Маргарет. Источник изображения

    Те самые меморандумы. Слева — рукописная записка Маргарет. Источник изображения

Работала команда с бортовым компьютером Apollo Guidance Computer, который стоял на командном и лунном модулях «Аполлона». И это был во всех смыслах этого слова совершенно уникальный компьютер. Дело в том, что это была первая бортовая навигационная система, которой мог управлять человек, но с автопилотными технологиями. Он был очень маленьким и весил всего 32 килограмма, работал на интегральных схемах, а не на транзисторах; для своего времени это была новейшая технология. Более того, он имел электродистанционное управление, то есть пилот управляет не напрямую механическими тягами, а через компьютер, который передаёт команды. Сейчас, в наше время, все современные самолёты управляются именно благодаря этой системе, а на «Аполлоне» была её глубокая предшественница.

Luminary 1A Версия 99 Программа бортового компьютера системы наведения «Аполлон» (распечатка) Источник изображения

Luminary 1A Версия 99 Программа бортового компьютера системы наведения «Аполлон» (распечатка) Источник изображения

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

Процесс изготовления памяти. Источник изображения

Процесс изготовления памяти. Источник изображения

Маргарет и "Аполлон", источник изображения

Маргарет и "Аполлон", источник изображения

Вот именно с этим «добром» и работала Маргарет Гамильтон. Причём она сама начала бороться за то, чтобы её работа считалась достаточно важной. Для этого она ввела в рабочий обиход термин «программная инженерия». В то время программистов считали кем-то второсортным по сравнению с инженерами. Нужно было отличать разработчиков ПО от разработчиков аппаратного обеспечения и других видов инженерии. При этом нельзя сказать, чтобы её идеи сразу же были приняты.

Лишь когда она сама возглавила группу, возникла достаточно серьёзная проблема: её подчинёнными были исключительно мужчины, и вышестоящее руководство искренне переживало, что могут начаться серьёзные социальные сложности. На что сама Маргарет отреагировала максимально легко: ведь они всё же на тот момент долго работали вместе и понимали, что все борются за одно и то же дело. Более того, Маргарет была прекрасным специалистом, ввиду чего имела однозначный авторитет в коллективе, пусть многие и не разделяли её идеи о равенстве сотрудников.

❯ «Ошибка Лорен»: почему инженер должна думать о действиях пользователя

Работа у Гамильтон продолжала всё это время оставаться достаточно напряжённой. Иногда она приводила на работу свою дочь, и однажды девочка, которую зовут Лорен, решила, что она тоже хочет попробовать запустить симуляцию полёта. Совершенно стандартное поведение для ребёнка, который проводит на месте работы родителей значительное время. Так, автор этого текста, к примеру, в своём очень глубоком детстве напечатал на рабочей печатной машинке некую очень важную белиберду. Проблема была лишь в том, что напечатал я это на уже подписанном серьёзном приказе. Но это было лирическое отступление.

Так вот, Лорен села за специальный пульт, через который астронавты общаются с бортовым компьютером. Он назывался DSKY. На нём были определённые цифровые индикаторы и клавиатура, с которой астронавт вводил команды. Ребёнок что-то потыкал, и всё сломалось. Причём я не шучу: после нажатия нескольких клавиш симуляция рухнула.

Маргарет Гамильтон во время испытаний системы автоматического регулирования мощности для проекта «Аполлон» в Массачусетском технологическом институте. Источник изображения

Маргарет Гамильтон во время испытаний системы автоматического регулирования мощности для проекта «Аполлон» в Массачусетском технологическом институте. Источник изображения

Маргарет стала разбираться, что же именно произошло, и её дочь совершенно случайно выбрала программу предполётной подготовки, которая шифровалась как P01. Эта программа использовалась исключительно перед стартом для того, чтобы выставить навигационную систему. В полёте она не нужна, её никто и никогда в таком ключе не планировал использовать. Проблема была в том, что эта программа занимала ту же самую область памяти, что и навигационная программа, и при её запуске стирались имеющиеся навигационные данные.

Почему? Потому что она перезаписывала имеющиеся области памяти, которые уже на тот момент использовала навигационная программа. Компьютер перезапускался ввиду возникшего конфликта, навигационные данные терялись. Без имеющихся данных компьютер не мог понять, где находится корабль и что ему, собственно, делать дальше. Проблема кажется более чем серьёзной, и Маргарет требовала её исправления: включить дополнительную защиту на случай, если астронавт зачем-то во время полёта попытается выбрать эту программу. Вполне естественная защита от дурака. Но вот беда: в то время руководство системы было убеждено, что их астронавты — это совершенно однозначно не дураки, и в космосе эту программу не выберут никоим образом. Считалось, что астронавты не могут допустить настолько идиотскую ошибку.

Но, как вы понимаете, если бы такой ошибки никто не совершил, то и этого текста, скорее всего, не было бы. Во время полёта «Аполлона-8» астронавт Джим Ловелл непреднамеренно выбрал P01. Правда, тут важно уточнить, что отдельные американские исследователи считают эту версию недостоверной, но углубляться в детали не будем.

Джим Ловелл. Источник изображения

Джим Ловелл. Источник изображения

Запуск программы уничтожил все навигационные данные. И это при том, что Маргарет прописала в требованиях по эксплуатации, что ни при каких условиях во время полёта данная программа не должна быть выбрана.

Когда ситуация всё же произошла, именно Маргарет вместе со своими коллегами на протяжении 9 часов работала с распечатками программы и выработала план. Хьюстон смог загрузить навигационные данные обратно, и катастрофы удалось избежать. Именно после этого Гамильтон получила определённый карт-бланш на исправление системы, даже если это требовало времени и ресурсов, потому что совершенно неожиданно оказалось, что даже прекрасно подготовленные астронавты способны допускать совершенно неадекватные ошибки. Человеческий фактор должен быть побеждён подготовкой на земле.

❯ «Аполлон-11»: что на самом деле произошло во время тревоги

Ярче всего идеи Маргарет раскрылись в условиях полёта «Аполлона-11». Задолго до полёта на Луну Гамильтон задумалась о том, как предупредить астронавтов о возникающих серьёзных проблемах. Дело в том, что в синхронной среде программное обеспечение могло работать с перебоями. Причину вы уже знаете: в каждый момент времени лишь одна задача могла решаться процессором, и астронавт банально не знал, что в системе уже произошла ошибка и проблема только нарастает. Она хотела, чтобы система сама могла прервать работу программы и сообщить о серьёзной проблеме, но механизм был ещё не выработан. Дело в том, что люди, которые занимались аппаратным обеспечением, считали идею Гамильтон нереализуемой.

Маргарет Гамильтон и её команда разработчиков работают над проектом «Аполлон» в лаборатории Чарльза Старка Дрейпера. Источник изображения

Маргарет Гамильтон и её команда разработчиков работают над проектом «Аполлон» в лаборатории Чарльза Старка Дрейпера. Источник изображения

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

Суть этой инновации требуется пояснить. Дело в том, что у используемого на «Аполлоне» компьютера было два типа информации, которые могли появиться перед астронавтом. Это обычный дисплей — то, с чем астронавт работает в конкретный момент: навигационные данные, параметры полёта или любые другие плановые задачи.

Второй вариант — это приоритетный, или аварийный, дисплей: то, что появилось внезапно, когда система обнаружила серьёзную проблему. То есть это та информация, которую выводили мгновенно и которая требовала конкретного решения. Но проблема в том, что астронавт не мог отличить, что именно перед ним: рядовая проблема или нечто, что требует мгновенного решения. Интерфейс в то время был, мягко скажем, далеко не очевиден. И если астронавт вводит, например, данные звёздной ориентировки и видит некий код проблемы, он не совсем понимает, связана эта проблема с тем, что он вводит конкретно в данный момент, или, это проблема совершенно иного уровня, никак с его действиями не связанная.

И именно в этом раскрывается весь потенциал того, что предложила Маргарет. Пятисекундная задержка нужна была для того, чтобы астронавт увидел появившуюся проблему. В течение 5 секунд он не мог ответить на проявившуюся проблему — значит, она совершенно гарантированно не связана с тем, что он делает в настоящий момент. То есть он изначально понимает, что это аварийная ситуация, при которой надо предпринять некие действия. Через 5 секунд задержка снимается, и астронавт принимает то или иное решение, чётко осознавая, что он работает уже с проблемой, а не с той задачей, с которой он работал до её проявления. Фактически Маргарет придумала защиту от путаницы: она дала время астронавту переключиться с одной задачи на другую и не совершить ошибку.

Может показаться, что это совершенно очевидное дело, но проблема в том, что в 1960-е годы никто совершенно так не делал. Интерфейсы были очень примитивные, всё ещё считалось, что оператор — это человек, который просто не может допустить ошибку, даже несмотря на то что на «Аполлоне-8» Маргарет уже доказала, что вероятность возникновения проблем из-за человека немала. Это первый совершенно задокументированный пример, когда именно человеческий фактор повлиял на проектирование программного обеспечения.

Гамильтон (внизу слева) и другие программисты оказывают поддержку миссии «Аполлон-8». Источник изображения

Гамильтон (внизу слева) и другие программисты оказывают поддержку миссии «Аполлон-8». Источник изображения

Собственно, именно он и сработал во время посадки «Аполлона-11», когда появились неизвестные астронавтам сигналы 1201 и 1202. Это были те самые сигналы, которые Гамильтон предусмотрела. Астронавты поняли, что происходит серьёзная проблема, а команда на Земле знала, что появление именно этих сигналов не требует прямого участия астронавтов. Подобная ситуация была предусмотрена заранее, хоть и крайне маловероятна. Фактически программное обеспечение не только сообщило всем о том, что возникла проблема, связанная с аппаратным обеспечением, но и смогло компенсировать её. Поэтому было принято решение идти на посадку. Участники этого великого события без малейших сомнений чётко понимали, что происходит в данный момент.

❯ После Луны, или как Гамильтон продолжила исследовать ошибки

«Скайлэб» на орбите в 1973 году во время полёта. Источник изображения

«Скайлэб» на орбите в 1973 году во время полёта. Источник изображения

После «Аполлона» Гамильтон продолжала работать в НАСА. Два основных проекта — это Skylab, первая американская орбитальная станция (1973–1979), и Space Shuttle, программа многоразовых космических кораблей (1981–2011). Для Skylab её группа продолжала разрабатывать бортовое программное обеспечение, используя богатый опыт «Аполлонов». Одной из ключевых заслуг её группы стала рекомендация по переходу в асинхронную среду вместо синхронной, потому что именно при работе над «Аполлонами» они убедились, что асинхронное ПО значительно безопаснее. Для Space Shuttle они разрабатывали требования к бортовому ПО, включая рекомендации по архитектуре, асинхронности, приоритетам и отказоустойчивости. К сожалению, более подробных пояснений о том, что именно делала группа Гамильтон, найти не удалось.

Маргарет Гамильтон в Музее Массачусетского технологического института в Кембридже. Источник изображения

Маргарет Гамильтон в Музее Массачусетского технологического института в Кембридже. Источник изображения

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

Также её команда провела очень интересную работу над ошибками при верификации и валидации программного обеспечения. В данном случае под верификацией надо понимать проверку того, соответствует ли код конкретным спецификациям, а под валидацией — решает ли код конкретную задачу, для которой он был написан. Результаты этой проверки были более чем серьёзными: 73 % выявленных ошибок были связаны с проблемами интерфейсов и находились на стыках между компонентами, а не внутри конкретных алгоритмов; 44 % ошибок обнаружились не автоматическими тестами, а при ручном просмотре кода конкретными специалистами. Поэтому Маргарет имела вполне серьёзные доказательства того, что большинство проблем возникает не в конкретных модулях, а именно при взаимодействии различных модулей.

На рисунке показаны три примитивные структуры управления и их правила, которые составляют универсальную основу для построения карт во временной и пространственной областях, таких как FMap и TMap, используемые в универсальном системном языке. Источник изображения

На рисунке показаны три примитивные структуры управления и их правила, которые составляют универсальную основу для построения карт во временной и пространственной областях, таких как FMap и TMap, используемые в универсальном системном языке. Источник изображения

После того как Гамильтон разработала теорию на основе шести аксиом управления, к ней начали обращаться разные организации с необычными запросами. Первыми были ВМС США: они предложили ей создать язык спецификаций на основе её аксиом. Язык спецификаций — это формальный способ описания того, что система должна делать, без указания, как именно это реализовано в коде. Затем армия предложила определить сам процесс разработки как систему и построить его автоматизацию. Это означало: описать все шаги, входы и выходы формально, чтобы можно было автоматически проверять и улучшать процесс.

Наша героиня сформировала очень серьёзную теорию, основанную на шести аксиомах управления, и предложила формальный язык описания систем Universal Systems Language (USL). Свой подход она назвала «development before the fact», и он предполагал, что свойства системы должны закладываться и проверяться на этапе, предшествующем реализации. Нужно исправлять классы ошибок, а не заниматься исправлением конкретных ошибок постфактум.

Лаборатория имени Чарльза Старка Дрейпера. Источник изображения

Лаборатория имени Чарльза Старка Дрейпера. Источник изображения

Лаборатория Дрейпера пригласила Гамильтон на встречу с экспертами самого высокого уровня. Там был и Клифф Маклейн, влиятельный человек и друг президента. Он слушал про аксиомы. Одна из них гласит: если система что-то производит, кто-то должен это принять; если есть вход, кто-то должен его обработать. Маклейн заметил, что у них есть люди, которые могли бы это делать. После этого они получили финансирование на описание гражданской обороны как системы.

В 1986 году наша героиня основала Hamilton Technologies — исследовательскую компанию, которая работает в Бостоне, недалеко от MIT, и занимается развитием её теории и языка USL.

Гамильтон в 1989 году. Источник изображения

Гамильтон в 1989 году. Источник изображения

Несколько позже она участвовала в сравнительных испытаниях, которые назывались «Shootout», в Колорадо. Испытания проводились на объекте высокой секретности, и там было 80 организаций, которые предлагали разные подходы к разработке ПВО. До финиша дошли всего три компании-разработчика, до этапа спецификации — только две, а когда необходимо было сгенерировать код просто по описанию, на этом этапе смогла остаться только Hamilton Technologies.

Изначально они сгенерировали программу на C, потому что это было максимально быстро. После того как убедились, что задачи легко выполняются, компьютер сгенерировал аналогичный код, но уже используя Ada— куда более строгий язык программирования. После чего наблюдатели из целого ряда систем Министерства обороны США приняли полученный результат.

Маргарет Гамильтон во время своей речи при получении почётной докторской степени в Университете Пенсильвания. Источник изображения

Маргарет Гамильтон во время своей речи при получении почётной докторской степени в Университете Пенсильвания. Источник изображения

Фирма работала с Министерством обороны, НАСА, а также отдельно с армией и флотом. Среди её клиентов были Citibank, Scott Paper и многие другие крупнейшие корпорации. Всё потому, что их программное обеспечение было максимально надёжным, и именно на этом строилась вся коммерческая и исследовательская деятельность.

Президент Барак Обама вручает Президентскую Медаль Свободы Маргарет Х. Гамильтон во время церемонии в Восточном зале Белого дома 22 ноября 2016 года. Источник изображения

Президент Барак Обама вручает Президентскую Медаль Свободы Маргарет Х. Гамильтон во время церемонии в Восточном зале Белого дома 22 ноября 2016 года. Источник изображения

К большому сожалению, Маргарет не была по-настоящему тщеславна: несмотря на многие годы работы на руководящих должностях и занятия академической наукой, она не оставила мемуаров, и её личная жизнь практически никак не освещалась, хотя было бы очень любопытно посмотреть на то, чем она занималась, от первого лица. Между тем я считаю возможным говорить о том, что Маргарет Гамильтон была счастливым человеком. Она на протяжении всей своей жизни занималась тем, что доставляло ей настоящее удовольствие, была действительно ценима и уважаема. И совершенно точно она была честна перед собой: ещё студенткой, когда видела людей, которые всю свою жизнь занимались сложением цифр и бежали домой сразу же по звонку по окончании рабочего дня, даже не закончив конкретную вычислительную операцию, Маргарет сказала, что у неё такого никогда не будет. Действительно, не было: она всю себя отдала космической программе и своей родине, и родина была ей за это благодарна.

Источник изображений

Источник изображений

Та самая фигурка лего. Источник изрображения

Та самая фигурка лего. Источник изображения

Заслуги Маргарет были признаны ещё при жизни. Нет особого смысла перечислять их все; стоит отметить Президентскую Медаль Свободы — высшую гражданскую награду Соединённых Штатов, которую она получила в 2016 году. В 2017 году её увековечили в лего, а в её честь были выпущены две книги для школьников, которые рассказывают об отдельных моментах из её жизни, правда, по моему мнению, книги более чем жутковатые. На протяжении всей жизни Маргарет занималась наукой; у неё более 130 публикаций. Что касается её семейной жизни, она практически никогда о ней не рассказывала: у неё было двое внуков и четверо правнуков. Она оставалась активной вплоть до самых недавних пор и умерла 30 сентября 2026 года в солидном возрасте 90 лет.

Список публикаций, которые использовались при подготовке данной статьи и достойны самостоятельного изучения интересующимися (всё англоязычное):
Может быть интересно:
Перейти ↩

Перейти ↩

Новости, обзоры продуктов и конкурсы от команды Timeweb.Cloud — в нашем Telegram‑канале ↩

View the original on Хабр →

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.