PIONJÄRER
Hennes kod tog oss till månen
Margaret Hamiltons beräkningar tog oss till månen. Och gjorde henne till en stjärna.
För de drygt 650 miljoner tv-tittare som följde månlandningen framstod det som om nästan hela operationen gick som på räls. Men bakom kulisserna hade denna milstolpe i mänsklighetens historia behövt ställas in helt – om det inte vore för en handfull rader kod.
Med sina 4 kilobyte RAM-minne, och en processor på 2,048 megahertz, var månlandarens dator en teknisk triumf; helt och hållet skräddarsydd för ändamålet. Det gällde dock bara om den hanterades exakt som planerat. Det med dagens mått mätt mikroskopiska arbetsminnet kunde bara utföra ett fåtal funktioner samtidigt – närmare bestämt sju. Om ett åttonde kommando matades in, skulle mindre viktiga processer automatiskt prioriteras bort för att göra plats.
Vilket också var precis vad som råkade hända under själva landningen. När Buzz Aldrin bad datorn att visa information om landarens position, triggades ett alarm – ackompanjerat av en fråga till besättningen: Ville de fortsätta med landningen eller avbryta den?
Lösningen: asykron programmering
Och denna möjlighet – det vill säga att inte tvingas till att avbryta landningen – var en viss Margaret Hamiltons förtjänst. Att hålla flera processer igång samtidigt, utan att någon riskerade att hamna ur fas med de andra när överbelastningslarmet gick, var bara möjligt tack vare det relativt nya påfundet asynkron programmering – det vill säga att olika processer kunde fortlöpa parallellt, utan att vänta in varandra.
Framåt slutet av 1960-talet, när hon arbetade med att implementera den här lösningen i månlandardatorns mjukvara, var Margaret Hamilton redan så nära man kunde komma en legendar inom sitt fält. Vilket på den tiden inte var särskilt nära, eftersom datorer var ett extremt smalt intresse – och programmering ett ännu smalare.
Kod för att spåra satelliter åt flygvapnet
Hamilton hade lärt sig göra just detta på några av de allra första datorerna, inklusive den gigantiska PDP-1, i MIT:s datorlabb på 50-talet. Dessa kunskaper använde hon för att skriva kod som bland annat analyserade väderfenomen och spårade satelliter åt amerikanska flygvapnet.
När hon under decenniet därpå anslöt sig till rymdprogrammet dröjde det inte länge innan Nasa insåg att de hade med en blivande stjärna att göra. Hamilton utsågs till ledare för ett team av kodare på MIT, som utvecklade programvaran till Apollo-programmets datorer.
Gav acceptans för utveckling av programvara som yrke
Den framgångsrika månlandningen cementerade Hamiltons status som mjukvaruingenjör i yppersta världsklass. Men projektet bidrog också till att sprida acceptans för programvaruutveckling som yrke – och term. I läroboken Fluency with Information Technology citeras Hamilton så här:
– När jag kom på begreppet programvaruutveckling (”software engineering” på engelska, reds anm) hade ingen hört talas om det förut – åtminstone inte i vår värld. Mina kollegor brukade driva med mina radikala idéer. En minnesvärd dag var när en av de mest respekterade hårdvaruexperterna förklarade för alla i ett möte att han höll med mig: processen för att bygga mjukvara borde också betraktas som en ingenjörsdisciplin, precis som med hårdvara. Att dagen blev minnesvärd kanske inte handlade om hans acceptans av termen i sig, utan om att vi hade förtjänat hans och de andras erkännande av att det här var ett ingenjörsområde i sin egen rätt.