Codul ei a dus oamenii pe Lună – și a inventat software-ul însuși

Margaret Hamilton nu trebuia să inventeze conceptul modern de software și să trimită oameni pe Lună. Era în 1960, nu era o perioadă în care femeile erau încurajate să caute locuri de muncă tehnice de mare putere. Hamilton, o tânără de 24 de ani cu o diplomă de licență în matematică, obținuse un loc de muncă ca programator la MIT, iar planul era ca ea să își susțină soțul pe parcursul celor trei ani petrecuți la Harvard Law. După aceea, ar fi fost rândul ei – ea dorea o diplomă de absolvire în matematică.

Dar a apărut programul spațial Apollo. Și Hamilton a rămas în laborator pentru a conduce o faptă epică de inginerie care avea să ajute la schimbarea viitorului a ceea ce era posibil din punct de vedere uman – și digital.

Vezi mai mult

Ca mamă care lucra în anii 1960, Hamilton era neobișnuită; dar ca programator de nave spațiale, Hamilton era pozitiv radicală. Hamilton o aducea pe fiica ei, Lauren, la laborator în weekenduri și seara. În timp ce Lauren, în vârstă de 4 ani, dormea pe podeaua biroului cu vedere spre râul Charles, mama ei programa, creând rutine care, în cele din urmă, urmau să fie adăugate la computerul modulului de comandă al navei Apollo.

„Oamenii obișnuiau să-mi spună: ‘Cum poți să-ți lași fiica? Cum poți să faci asta?”” își amintește Hamilton. Dar ea a iubit noutatea arcană a muncii sale. Îi plăcea camaraderia – băuturile de după muncă la clubul facultății MIT; glumele de tocilari, cum ar fi să spună că „va face o ramură cu minus la stânga” pe hol. Străinii nu aveau nici cea mai mică idee. Dar la laborator, spune ea, „eram una dintre băieți.”

Atunci, ca și acum, „băieții” dominau tehnologia și ingineria. La fel ca și femeile programatoare din industria tehnologică de astăzi, care se confruntă cu probleme de diversitate, Hamilton a fost o excepție. S-ar putea să-i surprindă pe creatorii de software de astăzi faptul că unul dintre părinții fondatori ai clubului lor de băieți a fost, de fapt, o mamă – iar acest lucru ar trebui să le dea de gândit atunci când se gândesc de ce inegalitatea de gen din epoca Mad Men persistă până în ziua de azi.

„Când am început să lucrez, nimeni nu știa ce făceam. Era ca în Vestul Sălbatic’. – Margaret Hamilton

În timp ce Hamilton își începea cariera, lumea software-ului era pe punctul de a face un salt uriaș, datorită programului Apollo lansat de John F. Kennedy în 1961. La Laboratorul de Instrumentație al MIT, unde lucra Hamilton, ea și colegii ei inventau idei de bază în programarea calculatoarelor, în timp ce scriau codul pentru primul calculator portabil din lume. A devenit o expertă în programarea sistemelor și a câștigat argumente tehnice importante. „Când m-am apucat de treabă, nimeni nu știa ce făceam. Era ca în Vestul Sălbatic. Nu exista niciun curs în acest sens. Nu se preda”, spune Hamilton.

Acesta a fost cu un deceniu înainte de Microsoft și cu aproape 50 de ani înainte ca Marc Andreessen să observe că software-ul este, de fapt, „mănâncă lumea”. Lumea nu se gândea deloc la software în primele zile ale lui Apollo. Documentul original care stabilea cerințele tehnice ale misiunii Apollo nici măcar nu menționa cuvântul software, scrie David Mindell, profesor de aeronautică la MIT, în cartea sa Digital Apollo. „Software-ul nu a fost inclus în program și nu a fost inclus în buget”. Cel puțin nu la început.

mhh-apollo
Margaret Hamilton în interiorul unei machete a modulului de comandă Apollo.

MIT

Margaret-Hamilton
Hamilton stă lângă listări ale codului sursă al computerului de ghidare Apollo (AGC).

NASA

mhh-and-an-fsq-7.ppt
Hamilton cu unul dintre foștii ei colegi la 19 aprilie 1962. Hamilton dezvolta software pe primul calculator AN/FSQ-7 la Lincoln Labs. Programul software al lui Hamilton era un program de supraveghere a înregistrărilor radar folosit pentru detectarea potențialelor avioane inamice.

Prin amabilitatea lui Margaret Hamilton

mhh-lauren-2
Hamilton și fiica ei Lauren.

Courtesy Margaret Hamilton

Prezentare1
Hamilton, în extrema stângă, stă alături de o parte din personalul său în sala Scama de la MIT, în timp ce susținea misiunea Apollo 8.

Prin amabilitatea lui Margaret Hamilton

raytheon-lab
Un muncitor Raytheon împletește fire de cupru prin inele magnetice.

Jack Poundstone/Raytheon

raytheon-lab1
„Micile doamne bătrâne” de la Raytheon.

Jack Poundstone/Raytheon

raytheon-copper
Vederea de aproape a firelor de cupru Raytheon.

Jack Poundstone/Raytheon

Dar, pe măsură ce proiectul Apollo se derula, a început să devină clară centralitatea software-ului în îndeplinirea misiunii. În 1965, Hamilton a devenit responsabil pentru software-ul de zbor de la bordul computerelor Apollo. Era o perioadă interesantă, iar SUA depindea de munca pe care o făcea. Dar, uneori, presiunea îl ținea pe Hamilton treaz noaptea. Odată, după o petrecere nocturnă, s-a grăbit să se întoarcă în laboratorul de calculatoare pentru a corecta o bucată de cod despre care își dăduse seama brusc că era defectă. „Întotdeauna îmi imaginam titlurile din ziare, iar acestea arătau cum s-a întâmplat și arătau spre mine.”

Până la jumătatea anului 1968, peste 400 de persoane lucrau la software-ul Apollo, pentru că software-ul era modul în care SUA urmau să câștige cursa spre Lună. După cum s-a dovedit, bineînțeles, software-ul avea să ajute lumea să facă mult mai mult. În timp ce Hamilton și colegii săi programau nava spațială Apollo, ei puneau la cale și ceea ce avea să devină o industrie de 400 de miliarde de dolari.

Pentru Hamilton, programarea însemna să facă găuri în teancuri de cartele perforate, care urmau să fie procesate peste noapte în loturi pe un computer uriaș Honeywell mainframe care simula activitatea modulului de aterizare Apollo. „Trebuia să simulăm totul înainte ca acesta să zboare”, își amintește Hamilton. Odată ce codul era solid, era expediat la o instalație Raytheon din apropiere, unde un grup de femei, croitorese experte, cunoscute în cadrul programului Apollo sub numele de „Little Old Ladies”, înfiletau fire de cupru prin inele magnetice (un fir care trecea printr-un miez era un 1; un fir care ocolea miezul era un 0). Uitați de memoria RAM sau de unitățile de disc; pe Apollo, memoria era literalmente cablată și foarte aproape indestructibilă.

Volurile Apollo au transportat două mașini aproape identice: una folosită în modulul lunar – Eagle, care a aterizat pe Lună – și cealaltă pentru modulul de comandă care îi transporta pe astronauți spre și de pe Pământ. Aceste computere Apollo de 70 de kilograme erau computere portabile diferite de celelalte. Conceput de ingineri de la MIT, cum ar fi Hal Laning și șeful lui Hamilton, Dick Batton, a fost unul dintre primele computere importante care a folosit circuite integrate în loc de tranzistori. După cum povestește Mindell, a fost primul sistem computerizat de navigație la bord conceput pentru a fi operat de oameni, dar cu tehnologie de pilot automat „fly-by-wire” – un precursor al sistemelor computerizate de navigație care sunt acum standard pe avioanele de linie.

Sistemul a stocat mai mult de 12.000 de „cuvinte” în memoria sa permanentă – „frânghiile” de cupru înfiletate de muncitorii de la Raytheon – și a avut 1.024 de cuvinte în memoria sa temporară, care poate fi ștearsă. „A fost pentru prima dată când un computer important s-a aflat într-o navă spațială și i s-a dat o mare responsabilitate pentru misiune”, spune Don Eyles, care a lucrat la codul modulului lunar în timp ce lucra la IL de la MIT. „Am arătat că se poate face acest lucru. Am făcut-o în ceea ce astăzi pare o cantitate incredibil de mică de memorie și o viteză de calcul foarte mică.” Fără el, Neil Armstrong nu ar fi ajuns pe Lună. Și fără software-ul scris de Hamilton, Eyles și echipa de ingineri de la MIT, computerul ar fi fost un eșec.

Acest lucru a devenit clar pe 20 iulie 1969, cu doar câteva minute înainte ca Apollo 11 să atingă solul pe Marea Tranchilității. Din cauza a ceea ce inginerul de software Apollo Don Eyles a numit o „eroare de documentare”, computerul Apollo a început să scuipe mesaje de eroare îngrijorătoare în timpul acestei faze critice a misiunii. Dar aici este momentul în care argumentele tehnice câștigate de Hamilton și alții au salvat situația. Mesajele de eroare apăreau pentru că computerul era copleșit, fiind însărcinat să facă o serie de calcule inutile când, de fapt, era mai mult nevoie de el pentru a ateriza modulul pe suprafața Lunii. La Houston, inginerii știau că, datorită procesării asincrone unice a lui Apollo, computerul se va concentra pe sarcina care îi revenea – aterizarea lui Eagle pe Marea Tranquillității. Când software-ul și-a dat seama că nu avea suficient spațiu pentru a îndeplini toate funcțiile pe care trebuia să le facă, a trecut prin procesul său de detectare a erorilor și s-a concentrat pe sarcina cu cea mai mare prioritate, spune Hamilton.

‘Asta nu s-ar întâmpla niciodată’

Într-o zi, Lauren se juca cu unitatea de afișare și tastatură a simulatorului modulului de comandă de la MIT, supranumită DSKY (dis-key). În timp ce se juca cu tastatura, a apărut un mesaj de eroare. Lauren prăbușise simulatorul lansând cumva un program de pre-lansare numit P01 în timp ce simulatorul se afla în plin zbor. Nu exista niciun motiv pentru care un astronaut ar fi făcut vreodată acest lucru, dar, cu toate acestea, Hamilton a vrut să adauge cod pentru a preveni prăbușirea. Această idee a fost respinsă de NASA. „Ni s-a spus de multe ori că astronauții nu vor face nicio greșeală”, spune ea. „Erau antrenați să fie perfecți”. Așa că, în schimb, Hamilton a creat o notă de program – o adăugire la documentația programului, care ar fi fost disponibilă inginerilor NASA și astronauților: „Nu selectați P01 în timpul zborului”, scria aceasta. Hamilton a vrut să adauge în sistemul Apollo un cod de verificare a erorilor care să împiedice ca acest lucru să dea peste cap sistemele. Dar acest lucru li s-a părut excesiv superiorilor săi. „Toată lumea a spus: „Asta nu s-ar întâmpla niciodată””, își amintește Hamilton.

Dar s-a întâmplat. Chiar în preajma Crăciunului din 1968 – la cinci zile după istoricul zbor Apollo 8, care a dus astronauții pe Lună pentru prima orbită cu echipaj uman din istorie – astronautul Jim Lovell a selectat din greșeală P01 în timpul zborului. Hamilton se afla în sala de conferințe de la etajul al doilea a Laboratorului de Instrumentație când a primit apelul de la Houston. Lansarea programului P01 ștersese toate datele de navigație pe care Lovell le adunase. Aceasta era o problemă. Fără acele date, computerul Apollo nu ar fi putut să își dea seama cum să îi ducă pe astronauți acasă. Hamilton și programatorii de la MIT trebuiau să găsească o soluție; și aceasta trebuia să fie perfectă. După ce au petrecut nouă ore parcurgând lista de programe de 20 cm grosime de pe masa din fața lor, aveau un plan. Houston urma să încarce noi date de navigație. Totul urma să fie în regulă. Mulțumită lui Hamilton – și lui Lauren – astronauții Apollo s-au întors acasă.

De asemenea, datorită lui Hamilton și muncii pe care a condus-o, noțiunile despre ceea ce putea face și fi omenirea s-au schimbat nu doar dincolo de stratosferă, ci și aici, pe pământ. Ingineria software, un concept pe care Hamilton l-a inițiat, și-a găsit drumul de la aselenizare până la aproape orice activitate umană. În anii 1970, Hamilton a renunțat la NASA și la programul Apollo. A continuat să înființeze și să conducă mai multe companii de software. În prezent, compania ei, Hamilton Technologies, se află la doar câteva străzi distanță de MIT, unde și-a început cariera – un centru al revoluției codului care încă privește spre stele.

Ar putea să vă placă și:

Lasă un comentariu