Ушла из жизни Маргарет Хэмилтон — программист и инженер, которая руководила разработкой софта для лунных миссий Apollo.
Именно ее команда создала бортовые программы, которые помогли астронавтам Apollo 11 совершить первую высадку людей на Луне.
Читают прямо сейчас:
История кода, который отправил людей на Луну — подробный рассказ о работе Маргарет Хэмилтон и её команды: как они создавали код для Apollo и почему ошибка 1202 не остановила посадку
Как взорвать ракету одной переменной — история про то, что бывает, когда инженеры не следуют принципам защитного программирования, которые отстаивала Хэмилтон
Квадратный корень, который ускорил игры в сто раз — ещё один пример кода, который стал легендой — в той же традиции гениальных инженерных решений
От метеорологии до программы Apollo
Хэмилтон начала карьеру в MIT в 1959 году. Сначала она занималась программами для прогнозирования погоды, а затем работала над SAGE — первой американской системой противовоздушной обороны.
В 1965 году она пришла в Instrumentation Laboratory при MIT, где NASA поручила разработку бортового ПО для программы Apollo. Хэмилтон стала первым разработчиком проекта и вскоре возглавила команду, которая занималась программами для пилотируемых миссий.
К 1968 году под ее руководством работали более 400 человек. В то время программная инженерия еще не считалась отдельной полноценной дисциплиной. Хэмилтон же стала одной из тех, кто помог изменить это представление.
Ее код спасал миссии
Хэмилтон уделяла особое внимание тому, чтобы программа могла самостоятельно справляться с ошибками. Такой подход сегодня называют защитным программированием.
Одним из примеров стала ошибка, которую случайно допустила ее четырехлетняя дочь Лорен во время работы с симулятором. Хэмилтон заметила, что похожая ситуация может произойти и во время настоящего полета, предложив заранее защитить систему.
Изначально эту идею отклонили, но во время Apollo 8 астронавт Джеймс Ловелл действительно запустил ненужную программу. Навигационные данные исчезли и команде Хэмилтон пришлось решать проблему. После этого предложенные ею изменения добавили в ПО.
Самое известное испытание пришлось на Apollo 11. Незадолго до посадки лунного модуля, на экране появился код ошибки 1202. Бортовой компьютер оказался перегружен из-за сбоя оборудования и мог не справиться с задачами посадки.
Однако программа была построена так, чтобы отдавать приоритет самым важным операциям и отключать второстепенные. Благодаря этому компьютер продолжил работу, а диспетчеры в Хьюстоне разрешили посадку. 20 июля 1969 года Нил Армстронг и Базз Олдрин впервые ступили на поверхность Луны.
Хэмилтон ввела термин «программная инженерия»
После завершения основной части программы Apollo, Хэмилтон продолжила заниматься разработкой программного обеспечения. В 1976 году она основала компанию Higher Order Software, а 10 лет спустя — Hamilton Technologies.
Одной из главных идей ее работы была борьба с ошибками еще на этапе проектирования. Хэмилтон также активно продвигала сам термин software engineering (программная инженерия).
В первые годы коллеги воспринимали его скорее как шутку, но со временем название закрепилось в отрасли.
Ее код стал частью истории
В 2015 году полный исходный код программ Apollo, над которыми работала команда Хэмилтон, опубликовали на GitHub. Фотография 1969 года, на которой она стоит рядом с огромной стопкой распечаток этого кода, позже стала одним из самых известных изображений в истории программирования.
Скидка на все курсы Практикума
Раз вы дочитали эту новость до конца, с технологиями у вас всё в порядке. А если давно присматривались к разработке, аналитике, нейросетям, тестированию или кибербезопасности, сейчас туда можно зайти дешевле.
Промокод KOD (можно просто нажать) даст скидку на любой платный курс! А если пока не готовы покупать курс, у Практикума есть бесплатные вводные части.
