News

Mały krok dla człowieka, ale wielki krok dla programowania

20 lipca 1969 roku, godzina 20:17:40 UTC. Po wielu trudach pajęcze nogi modułu księżycowego w końcu osadzają się na szaro-grafitowej powierzchni Księżyca. W powietrze wzbija się pył. Wszystko dookoła spowite jest czarną, niemalże aksamitną pustką. W oddali widnieje Ziemia – wydaje się taka bezbronna i delikatna.

“To mały krok dla człowieka, ale wielki krok dla ludzkości” – te historyczne słowa wypowiedziane przez Neil’a Armstronga w momencie postawienia pierwszych kroków na Księżycu zna chyba każdy z nas. Wydarzenie to nie tylko zainspirowało do opracowania wielu reportaży, filmów, i powieści, ale również rozpoczęło nową erę w historii ludzkości. Na pierwszym planie z reguły zawsze była załoga Apollo 11 – Neil Armstrong, Buzz Aldrin i Michael Collins. W tym artykule przedstawimy niepopularną historię projektu, który wysłał pierwszego człowieka na powierzchnię Księżyca; historię, która zrewolucjonizowała oblicze programowania.

Program Apollo

Program Apollo sięga maja 1961 roku, kiedy to John F. Kennedy przemówił do Kongresu Stanów Zjednoczonych o potrzebie stworzenia programu kosmicznego, który wysłałby pierwszego Amerykanina na powierzchnię Księżyca.

Przedsięwzięcie to okazało się kluczowe dla podniesienia Amerykańskich morale po wielokrotnych porażkach odniesionych przez USA w ciągu ostatnich kilkunastu lat. Do tamtej pory bowiem ZSRR zdążyło wysłać już w kosmos pierwsze zwierzę, najpierw mężczyznę, a później kobietę oraz odbyć pierwszy spacer w przestrzeni kosmicznej. Ponadto, wizerunek Stanów Zjednoczonych jako międzynarodowej potęgi został dodatkowo nadszarpnięty po nieudanej próbie inwazji w Zatoce Świni przez kubańskich emigrantów ze wsparciem amerykańskich najemników. Program Apollo stanowił zatem idealną okazję na udowodnienie ekonomicznej i politycznej wyższości Stanów Zjednoczonych nad Związkiem Radzieckim i odzyskaniem międzynarodowej reputacji.

Do dziś Projekt Apollo pozostaje jednym z największych i najdroższych przedsięwzięć w historii ludzkości – pracowało przy nim ponad 400 000 ludzi. Spośród tak wielkiego tłumu pracowników, jedną z kluczowych osób okazała się Margaret Hamilton.

Na zdjęciu: Margaret Hamilton

Margaret Hamilton – matka inżynierii oprogramowania

Gdy NASA rozpoczęło pracę nad projektem Apollo, Margaret Hamilton pracowała jako programista w MIT. Dziś znana jest jako matka inżynierii oprogramowania.

Zanim jednak jej ścieżki skrzyżowały się z NASA, Margaret ukończyła licencjat z matematyki i filozofii w Earlham College, a następnie uczyła w liceum. Dopiero, gdy jej mąż podjął decyzję o studiowaniu prawa na Harvardzie, Margaret rozpoczęła pracę w MIT, aby utrzymać rodzinę. To tam, w Lincoln Laboratory, gdzie pracowała dla ojca teorii chaosu – Edwarda Lorenza, po raz pierwszy zetknęła się z komputerami i pisaniem oprogramowania.

W międzyczasie, Instrumentation Laboratory szukało ludzi, którzy stworzyliby oprogramowanie potrzebne do wysłania człowieka na Księżyc. Margaret była pierwszą programistką, która dołączyła do zespołu, a także pierwszą kobietą, którą zatrudniono w tej instytucji. Poprowadziła zespół stojący za zbudowanie oprogramowanie dla pokładów lotów Apollo.

Problemy z oprogramowaniem

Margaret musiała zmagać się z wieloma uprzedzeniami, które skierowane były w kierunku jej pracy, gdyż oprogramowania nie uważano wtedy jeszcze za oddzielną dyscyplinę inżynierii. To Margaret zaczęła po raz pierwszy używać tego określenia w nadziei, że zmieni to sposób, w jaki inni inżynierowie, a także NASA, podchodzili do jej pracy.

Lekceważenie programowania jako inżynierii miało poważne konsekwencje dla Apollo. Jeszcze przed lotem, Margaret przyprowadziła do pracy swoją córkę — Laurel — która bawiła się w astronautę, kiedy Margaret przeprowadzała symulację lotu. W trakcie tej zabawy, poprzez wybranie przedstartowego programu Laurel przypadkowo wymazała wszystkie dane nawigacyjne, które miały za zadanie “zabrać ją na księżyc”.

W tym momencie Margaret uświadomiła sobie, że sytuacja ta mogłoby mieć miejsce w przypadku prawdziwego lotu i próbowała zasugerować zmianę w oprogramowaniu, aby temu zapobiec. NASA stwierdziło jednak, że ich astronauci są zbyt dobrze wyszkoleni, aby do czegoś takiego doszło. Zgadnijmy, co miało miejsce podczas najbliższego lotu – Apollo 8? Astronauta zrobił przez przypadek dokładnie to, co córka Margaret. Dopiero po tym incydencie pozwolono w końcu Margaret wprowadzić należyte zmiany.

Apollo 11

Komputer pokładowy Apollo (ang. Apollo Guidance Computer) stanowił najważniejszy komponent całej misji. Jego oprogramowanie musiało być niezawodne, zmieścić się na danym sprzęcie komputerowym, a także być w stanie wykryć każdy błąd i uporać się z nim w każdym momencie.

Tuż przed lądowaniem na Księżycu włączyły się alarmy (numer 1201 i 1202), które zakomunikowały, że komputer był przeładowany. Nikt nie znał powodu tych powiadomień. Po powrocie Apollo 11 na Ziemię okazało się, że alarmy nie zostały spowodowane żadnymi bugami w oprogramowaniu. Było odwrotnie, to oprogramowanie nie tylko informowało o problemie ze sprzętem, ale również go rekompensowało poprzez priorytetyzowanie zadań. Okazało się zatem kluczowe dla sukcesu wszystkich misji. Pośredniczyło ono między astronautami, a maszyną, obsługiwało dane z różnych czujników, a także integrowało wszelkie komponenty statku.

Podsumowując, program Apollo był nie tylko przełomowym wydarzeniem kulturowym i politycznym, ale stanowił również “wielki krok” w rozwoju technologii, którą znamy dzisiaj. Zapoczątkował on proces mający na celu zmniejszyć rozmiar komputerów, które do tamtej pory zajmowały całe pomieszczenia. Dał on również początek priorytetyzacji zadań, która dziś ma miejsce w niemalże każdym komputerze. Kiedy myślimy o skali przedsięwzięcia, jakim był program Apollo, oraz o tym, jak bardzo zmienił on historię ludzkości, aż dziw pomyśleć, że dzisiejsze smartfony mają więcej mocy, niż ówczesne komputery NASA.


Źródło zdjęcia: NASA. Źródła artykułu: theatlantic.com, medium.com, computerweekly.com. Autorką tekstu jest Zuzanna Filipiuk.

baner

Podobne artykuły

[wpdevart_facebook_comment curent_url="https://geek.justjoin.it/maly-krok-dla-czlowieka-ale-wielki-krok-dla-programowania/" order_type="social" width="100%" count_of_comments="8" ]