Szoftvermérnöknő
Margaret Hamilton, a modern programozás anyja
Barack Obama tavaly novemberben az USA legnagyobb civil kitüntetésével jutalmazta a szoftvert az űrkutatásba, egyben szoftver- és űrkutatás-történelmet író Margaret Hamilton MIT-s szoftvermérnököt. A szoftvermérnök kifejezés szintén Hamilton agyából pattant ki.
A programozást általában férfitevékenységnek tartják, a szó hallatán gép mellett éjszakázó kapucnis garázs-geakekre, labor mélyén kódoló ifjú tudósokra és természetesen sötétben ólálkodó hackerfenoménekre asszociálunk. Pedig az első – állítólagos – programot, az ősprogramot nő, a hányattatott sorsú Lord Byron lánya, Ada Lovelace (1815-1852) írta, és a modernkori programozás egyik vezéralakja, a mai értelemben vett szoftver és a szoftvermérnökség kitalálója szintén nő, az Indiana állambeli Paoliban 1936. augusztus 17-én Margaret Heafield néven született, férje után Margaret Hamiltonként elhíresült számítástudós.
Meteorológiai rendszerek nyomában
Ha a mai közvélekedés szerint a szoftverfejlesztés nem női foglalkozás, sejthetjük, hogy 1960-ban, bő évtizeddel a Microsoft előtt mennyire tartották annak…
Hamilton akkori szokás szerint, kollégáihoz hasonlóan matematikusdiplomával kezdett programozni az amerikai és nemzetközi IT-oktatás egyik fellegvárának számító Massachusetts Institute of Technology-ban (MIT). Imádta újdonságszámba menő munkáját, a munka után az MIT-klubban eltöltött órákat, geek-vicceket.
A Műszerhasználati Laborban kezdte pályáját, a SAGE projektben időjárás-rendszereket prognosztizáló számítógépet (LGP-30, PDP-1), a rendszermozgások követésére szimulátort fejlesztettek, amit a hidegháború rettegett szovjet légi támadásait szükség esetén mattoló komputer- és radarhálózatból álló védelmi rendszerré alakították át. Szoftverek is kellettek hozzájuk, Hamilton azok írásában vett részt. A védelmi rendszerhez például minden idők legméretesebb számítógépén, a 2 ezer négyzetméteren elterülő 250 tonnás AN/FSQ-7-en fejlesztett.
Ott dolgozták ki a programozás alapelveit, például megírták a világ első hordozható számítógépének kódját. Korabeli dokumentumokban még a szoftver szó sem szerepelt…
„Eleinte, mintha a Vadnyugaton jártunk volna, senki nem tudta pontosan, mit is csinálunk. Semmiféle ezirányú tanfolyam nem létezett, nem tanítottak rá” – emlékezik vissza a korai évekre, amikor a rendszerprogramozás szakértőjévé vált.
Aztán jött az Apollo-program, és minden megváltozott. Hamilton 1963-ban kapcsolódott be a munkába, 1965 körül egyértelművé vált a szoftver központi szerepe a programban, majd egyik mérnöki döntése hatalmas segítséget jelentett a küldetés sikerében és abban, hogy bebizonyosodhatott: a holdraszállás emberileg és digitálisan is megvalósítható. Neil Armstrong kis lépése az emberiség és a szoftverfejlesztés történetében egyaránt hatalmas ugrásnak bizonyult.
Apollo 11
2016. november 22-én a 80 éves Hamilton az Egyesült Államok legnagyobb civil kitüntetését, az Elnöki Szabadságérmet kapta 20 másik kimagasló tevékenységet végző személyiséggel (Tom Hanks, Diana Ross, Bruce Springsteen stb.) együtt.
A kitüntetés elsősorban az 1960-as évekhez, az űrkutatáshoz kapcsolódik.
Majdnem 50 év telt el azóta, hogy Hamilton elkezdett dolgozni az Apollo 11 Hold-missziónak. Úttörő szoftvere segítette a holdmodul és a személyzet 1969-es leszállását a Hold felszínére.
Barack Obama elnök elmondta: Hamilton jelképezi a nem agyonsztárolt nők azon generációját, akik segítettek embert küldeni a világűrbe. Armstrong és Buzz Aldrin űrhajósoké volt a rivaldafény, Hamilton pedig a színfalak mögött dolgozott egy olyan korban, amikor a számítástudomány (computer science) annyira új volt, hogy még nem is használták rá ezt a kifejezést, a kódokat pedig kézzel írták.
Az Apollo-programban az 1961-es startpisztoly eldörrenése óta bedolgozó MIT egyik csoportját vezette, a felsőoktatási intézmény Charles Stark Draper Laborjában velük írta a NASA Hold-misszióinak fedélzeti repülésszoftverét, az első onboard navigációs rendszert az első tranzisztorok helyett integrált áramköröket használó kitüntetett szerepű, Hamilton MIT-s főnöke, Dick Batton és Hal Laning által fejlesztett számítógépen.
1968 nyarán már több mint 400-an munkálkodtak a szoftveren.
Holdraszállás Hamilton szoftverével
Hamilton 24 éves korától dolgozott a világhírű felsőoktatási intézményben. Az ő csapata rakta le a szoftvermérnökség (software engineering) alapjait. Rendszerszintű megközelítés, szigorú tesztelések melletti kiállás jellemezte munkáját. Aztán kikristályosodott benne és munkatársaiban is: a szoftverrel nyerik meg az űrversenyt.
Programozáson a korabeli lyukkártyás módszert értsük: a digitális információt a keménypapírból készült kártyán adott pozícióban meglevő lyukakkal ábrázolták. Helyüket a mindenkori kódtáblázat határozta meg, a funkció végrehajtásához az adathordozón levő lyukakat az olvasóegység beolvasta, megfelelő berendezéssel dekódolta. A feldolgozást az Apollo leszállóegység tevékenységét szimuláló gigantikus Honeywell komputer végezte. Repülés előtt mindent szimulálniuk kellett.
„Űrhajósainknak nem volt sok idejük, viszont szerencséjükre ott volt nekik Margaret Hamilton” – értékelte a programozó érdemeit a januárban leköszönt elnök.
Obama arra utalt, hogy Hamilton átírta az Apollo rendszerét, lehetővé téve, hogy a számítógép fontossági sorendet állítson fel, ha rengeteg feladatot kell abszolválnia. Újításának jelentősége a holdraszállás napján derült ki: 1969. július 20-án néhány perccel a Nyugalom tengerén történt landolás előtt ugyanis több számítógépes vészjelzés érkezett. A NASA-csapat viszont azt is azonnal észlelte, hogy egyik figyelmeztetés sem kritikus, és az erre vonatkozó „1202 figyelmeztetés” értelmében semmisnek tekintették a prioritásrendszerről a radarrendszerre kapcsolás utasítását, a misszió pedig folytatódhatott.
Az Apollo-űrhajókon két szinte teljesen azonos komputer dolgozott: az egyiket a holdmodulban, a másikat az asztronautákat a földről el- és visszaszállító irányítómodulban használták.
Nemcsak Obama, hanem az Apollo-szoftver fejlesztésében vállalt oroszlánrészért 2003-ban a NASA is kitüntette Hamiltont. 1986-ban az Association of Women for Computing szintén.
Díjukat Ada Lovelace-ről nevezték el.
Soha ne mondd, hogy soha
Hamilton rendszeresen bevitte kislányát, Laurent az MIT-ba. Lauren egyszer az irányítómodul szimulátorának kijelzőjével és billentyűzetével játszott, amikor felugrott egy hibaüzenet. A P01 indulás előkészítő programmal valahogy sikerült repülés közben tönkretennie a szimulátort.
Semmi oka nem volt, hogy egyetlen űrhajós valaha is használja a P01-et.
Hamilton mégis hozzáírt a kódhoz, de a NASA elvetette az ötletet, mondván, hogy asztronautáik abszolút felkészültek és nem hibáznak.
1968 karácsonya körül az Apollo 8 egyik tagja, Jim Lovell véletlenül a P01-et választotta az űrben. Az MIT-ben tartózkodó Hamilton és társai üzenetet kaptak Houstonból: a P01 törölte Lovell összes navigációs adatát, amelyek nélkül a számítógép aligha találta volna meg a hazautat. 9 óra kínkeserves agyalást követően Hamilton kódkiegészítését használva jöttek rá a megoldásra. Houstonból új navigációs adatokat töltöttek fel a gépre, az űrhajósok pedig szerencsésen visszatértek.
Néhány sarokra az MIT
1976 és 1984 között az általa alapított Higher Order Software-t (HOS) igazgatta. MIT-s tapasztalatait hasznosítva hibamegelőzésen és hibatoleráláson dolgozott. USE.IT nevű terméküket több kormányprogramban használták, és mindenki nagyon elégedett volt vele.
1986-ban az MIT-nak is otthont adó Cambridge-ben megalapította a felsőoktatási intézménytől néhány sarokra ma is működő Hamilton Technologies-t. Cégét a szoftverek és más komplex rendszerek specifikációjára és tervezésére általa kidolgozott formális módszer és modellező nyelv, a Universal Systems Language (USL) és a kapcsolódó automatizált környezet, a 001 eszközcsomag köré építette. Mindezt az MIT tőszomszédságában, ahonnan pályafutása indult, és ahol Hamilton szellemében az űr felé tekintve folyamatosan forradalmasítják az infokommunikációs technológiákat.