Маргарет Гамильтон, ведущий инженер-программист проекта «Аполлон»

    image
    Маргарет Гамильтон в годы пилотируемой программы полётов к Луне «Аполлон».

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

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

    Маргарет Гамильтон получила степень бакалавра по математике в колледже Эрлхам в 1958 году и очевидно ничего не знала о программировании, пока не получила работу в Массачусетском технологическом институте, где она научилась писать программное обеспечение для компьютеров, другого способа научиться программировать, кроме самообразования, тогда не существовало.

    Она отложила свою дипломную работу за возможность работать над программным обеспечением для программы Аполлона и в конечном счете стала руководителем Software Engineering в Instrumentation Laboratory Массачусетского технологического института для пилотируемой программы полётов «Аполлон» и «Скайлэб». Она опубликовала более 130 работ.

    В 1986 году она основала и стала генеральным директором Hamilton Technologies, в Кембридже, штат Массачусетс, компании разработчика языка программирования Universal Systems Language. «Язык универсальных систем», предупреждающем, а не исправляющем сбойные ситуации, который основывается на теории систем и опирается на уроки проекта по разработке бортового программного обеспечения кораблей «Аполлон».

    За свой вклад в успех программы «Аполлон» и в области разработки программного обеспечения она была отмечена тремя наградами:
    1. 1986, Augusta Ada Lovelace Award, Association for Women in Computing.
    2. 2003, NASA Exceptional Space Act Award for scientific and technical contributions. Награда включала в себя денежную награду в $37200, наибольшая персональная сумма награды в истории НАСА.
    3. 2009, Outstanding Alumni Award, Earlham College

    Что же произошло 20 июля 1969 года и чем обязано человечество 31-летней программистке-самоучке?
    После расстыковки командно-служебного и лунного модулей выключатель радара стыковки был поставлен в неправильное положение из-за ошибки в инструкции для астронавтов, радар посылал ошибочные сигналы бортовому компьютеру. Обработка ложных сигналов занимала 15% машинного времени бортового компьютера, обеспечивавшего посадку на Луну. Заслуга Гамильтон заключается в грамотной разработке программного обеспечения, в котором она предусмотрела приоритет задач. Бортовой компьютер после получения определенного количества сообщений от неприоритетной задачи, «сконцентрировался» на приоритетной задаче — прилунении и игнорировал неприоритетные задачи.
    Маргарет Гамильтон также приписывается введение термина “software engineering”.

    Интересно, что в один год с Маргарет родилась в СССР Ревмира Прядченко, которая окончив математико-механический факультет Ленинградского Государственного Университета, получила работу в Центре дальней космической связи, где она занимаясь не только непосредственно должностными обязанностями по приему телеметрии и оформлению «бумажек», но и пошла дальше по пути анализа принятой информации. Сыграла важную роль в истории ранней космонавтики. В конечном счете стала начальником отдела по обработке телеметрической информации. К сожалению череда неудач в советской космонавтике и затем застой коснулся не только советской космонавтики, но и судьбы самих участников, которая была не так благосклонна как к Маргарет. Но это другая история, которая, вероятно, вскоре исчезнет вместе с последними свидетелями и участниками ранней космонавтики.

    «У нас любить умеют только мертвых».
    «Борис Годунов» (1825)
    А. С. Пушкин.

    P.S.
    Int_13h14 декабря 2014 в 18:59#
    Это видео должно быть здесь:


    на 21 минуте как раз процесс прошивки ПЗУ :)
    Поделиться публикацией
    Похожие публикации
    Никаких подозрительных скриптов, только релевантные баннеры. Не релевантные? Пиши на: adv@tmtm.ru с темой «Полундра»

    Зачем оно вам?
    Реклама
    Комментарии 52
    • +3
      В дополнение, сайт её конторы: htius.com
      Список клиентов особенно внушает :)
      • 0
        Вот бы кто рассказал про продукты этой конторы, язык USL…
        • 0
          думаю основной потребитель систем — Министерство Обороны.
      • 0
        А еще можно добавить, что отдел под ее руководством в прямом смысле слова связал программу для Аполлона из ферритовых колец и медной проволоки.
        • 0
          она имела отношение к разработке железа? В частности перезаписываемой памяти на ферритовых кольцах? Я встретил упоминание только о введении перезаписываемого участка ПЗУ для изменения программы БК.
          • 0
            Причем здесь разработка? Просто они набивали ПЗУ вручную.
            • +1
              что тогда значит " связал программу для Аполлона из ферритовых колец и медной проволоки"?
              image
              • 0
                Это ферритовые ПЗУ: en.wikipedia.org/wiki/Core_rope_memory. Набивка производится вручную вязанием.
                • 0
                  Как это работает? Там же все провода без изоляции и закорочены друг на друга.
                  • 0
                    лаковая изоляция проводов.

                    Память на магнитных сердечниках
                    запоминающее устройство, хранящее информацию в виде направления намагниченности небольших ферритовых сердечников, обычно имеющих форму кольца. Ферритовые кольца расставлялись в прямоугольную матрицу и через каждое кольцо проходило (в зависимости от конструкции запоминающего устройства) от двух до четырёх проводов для считывания и записи информации. Память на магнитных сердечниках была основным типом компьютерной памяти с середины 1950-х и до середины 1970-х годов
                    • 0
                      Как трансформатор.
                    • +1
                      Это видео должно быть здесь:
                      www.youtube.com/watch?v=YIBhPsyYCiM

                      на 21 минуте как раз процесс прошивки ПЗУ :)
                      • +2
                        отличная иллюстрация почему сейчас нельзя построить точно такую же систему и слетать на Луну. Технологии изменились и нужно строить практически заново тестируя эквивалентные конструкции и системы на современной технологической базе.
                        • 0
                          Никто не мешает использовать старую элементарную базу. Даже более того: проблем с радиацией и помехами будет меньше (хотя получается дороже).
                          • +1
                            боюсь, тут вопрос намного шире старой элементарной базы — за ненадобностью не производятся те материалы, из которых делалась элементарная база (те же ферриты, сорта стали, дюраля и прочее). А восстанавливать индустрию 1960-х явно еще дороже, чем использовать текущую аэрокосмическую электронику, и скорее всего невозможно.
                            • +1
                              Насчет конструкционных материалов — не знаю, но именно с компьютерами проблем быть не должно: похожие системы восстанавливали в железе любители с возможностями куда более ограниченными, чем у NASA. www.corememoryshield.com/report.html. Ферритовые сердечники никуда не делись, они не портятся. Бóльшую проблему представляют интегральные схемы, но их в принципе можно заменить на современные аналоги.
                              • +2
                                Можно построить Запорожец с нуля по сохранившимся чертежам и образцам — технически ничего сложного. Часть деталей на ЧПУ, часть на 3D принтере. Другой вопрос надо ли повторять? Свою работу он сделал.

                                Может стоит начать строить настоящий дом на Луне, а не устраивать очередной пикник?

                                Дом, в котором, среди прочего, будет «гараж» для посадочных модулей, от куда будет производиться многоразовый запуск на орбиту. Стыковка с орбитальным модулем, переход в орбитальный модуль, растыковка и орбитальный модуль отлетает к Земле, а посадочный модуль болтается на орбите до встречи с другим орбитальным модулем.
                            • 0
                              Ничто, кроме здравого смысла. Уже даже для Шаттлов приходилось покупать 8086 процессоры на eBay, а для реплики Apollo проще будет с нуля всё сделать, чем старые технологии восстанавливать.
                              • 0
                                Это так, но проблема в том, что с нуля тоже почему-то не делают…
                                • +2
                                  А с этим всё гораздо проще: цена программы Apollo — больше 100 миллиардов (в пересчёте на современные доллары), бюджет НАСА в последние годы — был порядка 12-15 миллиардов в год.

                                  То есть можно либо исследовать планеты и кометы, летать на МКС и прочее, либо закрыть все эти проекты и лет через 10 забросить на Луну ещё пару десятков космонавтов.

                                  Причём если вы думаете, что за прошедшее время прогресс ушёл далеко вперёд, то вы сильно ошибаетесь: основные-то деньги в программе Apollo ушли не на ферритовые сердечники! И с учётом того, что мы сегодня, сейчас летаем в космос на двигателях сделанных для лунной гонки в 60е… сильно снизить цену ну никак не получится.
                                  • 0
                                    Я в курсе, и все это печально. Я же не против, просто аргумент, с которого началась эта ветвь комментариев невалидный.
                                    • +1
                                      Нет, он как раз валидный. Потому я и сравниваю цену программы Apollo с бюджетом НАСА, а не цену Сатурн-5. Стоимость одного запуска ракеты в программе Apollo была немногим больше миллиарда долларов (в современных ценах). Много, но пару пусков в год НАСА могло бы осилить. Но так не получится: технологии утеряны и всё нужно делать заново. А вот уже на это — денег нет.
              • –1
                Сначала подумал, что не может быть программа такой огромной, а потом прикинул, что в той стопке порядка 30 тыс листов. Если программа написана с двух сторон, по 50 строк на странице, то это 300 тыс строк кода. Не уверен, но скорее всего в то время не использовались высокоуровневые языки программирования, а на каком-нибудь ассемблере или в машинных кодах программа легко может занять такой объём…

                Объём впечатляет…
                • +1
                  да, ассемблер. В EN.WIKI подробно о бортовом компьютере написано.
                  • +6
                    Это ассемблер, да. Одна строка — два байта, но большая часть — комментарии. Вот, например, листинг управления спускаемым аппаратом: www.ibiblio.org/apollo/listings/Comanche055/REENTRY_CONTROL.agc.html. Все, что справа — было в исходном коде.
                    • 0
                      Спасибо за ссылку. Вспомнились времена, когда писал на ассемблере под Z80 :)
                • +2
                  Статью надо читать вместе с этим вот графиком:



                  • 0
                    Расшифруйте, плс. Я так понимаю с 1980-х изменился либо учет работающих — тех кто работал на PC перестали считать, либо как-то еще изменился рынок труда.
                    • +2
                      Расшифровываю — отрасль стала выживать женщин, и пример с Гамильтон или той же Грейс Хоппер стал абсолютно невозможным. Конец восьмидесятых — это как раз тот момент, когда стала формироваться массовая ИТ-культура.
                      • +9
                        Рутинной работы стало меньше. Ведь большинство женщин-компьютерщиков пришли в CS как низкоквалифицированный персонал: набивальщицы, операторы или вычислители (как «шестерка девушек ЭНИАКА»). Самые способные потом повышали квалификацию и становились программистами. А в восьмидесятых потребность в таком персонале отпала.
                        • –4
                          Это не так, причины лежат в области образования, а не последующего троудоустройства — en.wikipedia.org/wiki/Women_in_computing#Statistics_in_education
                          • +3
                            Образование тут вообще никаким местом.
                            • +4
                              Тема интересная «Computer Science vs. Computing Science». Я всё таки склоняюсь к переходу от мейнфреймов к PC. Изменился сам принцип работы с ЭВМ. Соответственно нет необходимости в персонале обслуживающем такие комплексы. Это не только девушки вводящие данные и программы, но и смены инженеров обслуживающих электронику.

                              image

                              Если считать количество людей работающих сейчас с ЭВМ — их количество увеличилось на порядки. Но нельзя их назвать ни программистами, ни специалистами в том смысле, как это было до 1980-х.
                              • 0
                                Именно. У компьютерной индустрии «отпало дно»: низкоквалифицированный персонал никому и ни для чего не нужен (нужны низкоквалифицированные сборщики в Китае, но оттуда нет пути «наверх»). У меня есть родственница, которую как раз при мне «вытеснили». Она по образованию — инженер-системотехник. Но при этом когда она пыталась в 90е устроиться на работу, то я с удивлением обнаружил, что она с огромным трудом могла написать простейший цикл! Я тогда в школе учился и про computer science знал мало, так что не скажу что она знала про алгоритмы, но очень сомневаюсь что много. Но зато она, наверное, могла бы связать этот самый цикл (чего я никогда не умел и не умею).

                                Сейчас же когда берут на собеседование самого-самого джуниора умение отличать O(N²) от O(N log N) и правильно джонглировать относительно сложными конструкциями данных — обязательно. Соответственно несколько ступенек в лестнице попросту пропали. Мальчики их перепрыгивают разными нестандартными путями (обучаются навыкам «вязания» программируя на калькуляторе в машинных кодах, к примеру), а девочки, в большинстве своём, обнаружив лестницу с выбитыми ступенями понимают, что пути наверх просто нет.
                                • +2
                                  Согласен. Дно, на самом деле, есть: веб-программирование и тп разделы, где нужно знание технологий, а не алгоритмов и принципов работы. Но оттуда пути наверх тоже нет.
                                  • +1
                                    причем такая же ситуация — веб-программист, если не успел за сменой моды/технологий, останется без работы.

                                    image
                                    • 0
                                      Т.е, с практической точки зрения, веб-программированием и программирование android и IOS нет смысла заниматься? Это путь в никуда?
                                      • 0
                                        Я интересуюсь этим не просто так — просто я вижу если я сейчас потеряю работу то мне придётся программировать андроиды или сайты поскольку вакансий по с++ нету, исключительно веб разработчики, андроид и IOS
                                        • 0
                                          Мне кажется C++ программисты всегда нужны?
                                          • +1
                                            В моем городе похоже что нет
                                            • 0
                                              А как на счёт удалёнки? Весь мир перед вами.
                                        • 0
                                          Сегодня — есть, завтра нет. Так понятно?
                                          • 0
                                            Понятно. Значит в случае чего придётся программирование бросить и на другую специальность буду переучиваться.
                                            • 0
                                              Почему же. Можно выучить какую-нибудь более перспективную технологию: C++ вряд ли умрет в ближайшие лет десять, например. Ассемблер вообще никогда не умрет, хотя вакансий на него не так много. Ну, и переехать. А вообще, технологии — не самое главное, и надо быть готовым переквалифицироваться, например, из веба на сервера.
                                      • +1
                                        Вы мне напомнили пост на ФБ, американец поделился деталью его разговора с авиационным инженером (в возрасте) о состоянии авиаиндустрии в США. Суть в том, что нет молодежи, нет молодых инженеров, а молодых инженеров нет, потому, что компании не выгодно нанимать молодого специалиста и обучать его. Им нужен готовый специалист, хоть иностранец, лишь бы делал работу, большая часть, которой автоматизирована, но еще требует опытного человека. Со слов старого инженера в США разрушена инженерная школа. Старые инженеры не передают опыт молодежи. Всё больше работа по проектированию уходит за границу. Далее американец(бывший работник Microsoft) пишет свою ремарку, что с программистами сейчас такая же ситуация. Студенту сложно найти первую работу, компании предпочитают нанять готового специалиста-иностранца. Далее там было про прос… полимеры потере собственной национальной школы программистов.
                                • 0
                                  Интересно, кто из них привёл к уменьшению рутины…
                                  • +1
                                    Терминалы с системами разделения времени, а потом (и главным образом) IBM PC. Позволили избавится от дополнительной прокладки между программистом и клавиатурой
                            • 0
                              Девушка молоток!
                              Но я бы не хотел себе такую жену, ибо смотрелся бы на ее фоне жалко, хоть и программист… LOL

                              PS: А хотя, если бы работал на должности не ниже ее, то можно было бы :)
                              • 0
                                и жену видеть только на переговорах :)
                                • +2
                                  Да вы, батенька, сексист!
                                  • +1
                                    Насчет жены не знаю, а вообще надо стараться общаться с людьми более продвинутыми чем ты сам — это будет подтягивать к их уровню. И наоборот, находясь в окружения людей ниже тебе по профессиональному уровню — будешь постепенно терять и свой уровень. Конечно психологически комфортней как раз общаться с теме кто ниже тебя по уровню — с ними будешь чувствовать себя крутым, а с людьми более высокого уровня наоборот — глупцом. Но надо преодолевать зону комфорта.

                                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                  Самое читаемое