Ta bezkompromisowa matematyczka zrewolucjonizowała programowanie
Pionierka informatyki, kontradmirał w United States Navy, pierwsza kobieta z tytułem doktora na Uniwersytecie Yale’a. To ona zrewolucjonizowała programowanie i rozpropagowała określenia "bug" w słownictwie informatycznym.
15.02.2020 09:20
Mark I bardziej przypominał mechaniczne maszyny Charlesa Babbage’a niż komputery we współczesnym znaczeniu tego słowa - wewnątrz jego stalowej obudowy obracający się wał napędowy zasilany przez silnik o mocy czterech koni mechanicznych uruchamiał sekwencję przekładni i liczników ciągnącą się wzdłuż całego urządzenia. Kod dla Mark I pisano ręcznie, ołówkiem, na znormalizowanym papierze kodowym, a potem przenoszono go - dosłownie wybijając - na szpule taśmy szerokości trzech cali, przypominające wstęgi do pianoli czy karty perforowane do krosna Jacquarda.
W tydzień oswoić bestię
Umiejscowienie otworów na taśmie stosujące niepowtarzalny kod ośmiobitowy odpowiadało cyfrom, procesom i zastosowaniom danych obliczeń. Chociaż Mark I był programowalny w takim sensie, że przyjmował te rolki podziurkowanej taśmy, rozróżnienie pomiędzy sprzętem (hardware) a oprogramowaniem (software) było wówczas nieostre, a wręcz nie istniało - każde obliczenie wymagało obrócenia przełączników i przepięcia kabli.
Howard Aiken przedstawił Grace pozostałym członkom załogi, dwóm podporucznikom marynarki, którzy przyjechali na Harvard, kiedy ona była jeszcze w Szkole Kadetów. Później dowiedziała się, że jeden przekupywał drugiego, żeby wykręcić się od siedzenia koło nowego rekruta - "byli przekonani, że przyjeżdża stara siwowłosa nauczycielka i żaden z nich nie chciał zająć sąsiedniego biurka". Aiken dał jej książkę kodową, parę stron niezrozumiałych poleceń i zadanie: napisać program dla Mark I, który wyliczy współczynniki interpolacji dla arcus tangens z dokładnością do dwudziestu trzech miejsc po przecinku. "A potem powiedział, że mam na to tydzień", opowiadała, "tydzień żeby nauczyć się, jak programować tę bestię i uruchomić program". Zadanie samo w sobie nie było szczególnie trudne dla Grace - miała przecież doktorat z matematyki. To maszyna była dla niej niezrozumiała. Nie miała żadnej instrukcji, nie było precedensu, na którym mogłaby się oprzeć, ponieważ Mark I był pierwszym urządzeniem tego rodzaju. Grace potrafiła wiele rzeczy, ale brakowało jej przygotowania inżynierskiego i nie odróżniała przełączników od przekaźników. Aiken ją sprawdzał.
"Okablowany" szef
Będąc z natury samoukiem, podjęła to wyzwanie. Ślęczała nad książką kodową i wypytywała dwóch podporuczników, głównie dwudziestotrzyletniego Richarda Blocha, świeżo upieczonego absolwenta Harvardu i speca od matematyki, który miał zostać jej najbliższym współpracownikiem. Po laboratorium kręcili się jeszcze inżynierowie IBM, którzy usuwali usterki - od nich także wydobywała wszystkie możliwe informacje. Siedziała do późnej nocy, usiłując poznać budowę maszyny przez analizowanie planu i schematów połączeń Mark I. Czasami spała przy biurku. Wiele lat później, kiedy Grace była już znaną postacią w nowej dziedzinie programowania komputerów, zawsze dawała najtrudniejsze zadania najmłodszym i najmniej doświadczonym członkom zespołu. Doszła do wniosku, że oni jeszcze nie wiedzą, co jest niemożliwe.
Podczas pierwszego roku na Harvardzie pracowała bez przerwy i kiedy do zespołu dołączali nowi programiści, Grace otrzymywała kolejne stopnie wojskowe. Dzięki tej samej pracowitości i pomysłowości, którą wniosła do uczenia studentów, stała się nieocenionym członkiem zespołu. Siwowłosa nauczycielka z północy stanu Nowy Jork spotkała wybitnych matematyków, inżynierów i praktycznie wszystkich z mikroskopijnego świata informatyki. "To było fascynujące", mówiła, "wylęgarnia pomysłów, koncepcji, marzeń i wszystkiego pod słońcem". Zapotrzebowanie na obliczenia było tak wielkie, że Aiken zaprojektował drugi komputer, Mark II. Grace również się go nauczyła.
Podobnie jak do jego maszyn, tak i do samego Aikena brakowało instrukcji obsługi. Był wybuchowy, drażliwy i przywiązywał obsesyjną wagę do szczegółów. Dowodzenie zespołem pracującym nad jego własnym wynalazkiem napawało go ogromną dumą. Chociaż Mark I został zbudowany przez IBM i schowany w piwnicy prestiżowego uniwersytetu, Aiken zajmował się nim tak, jakby kierował placówką marynarki wojennej. Surowo przestrzegał dyscypliny. Wszyscy podwładni mieli przychodzić do pracy w pełnym umundurowaniu i tytułować go "komandorem porucznikiem". Do komputera odnoszono się w rodzaju żeńskim, tak jak do okrętów marynarki wojennej. Aiken zamęczał ludzi pracą - kiedy doszło do błędu, zdarzało mu się "ryknąć" na winowajcę.
Krytyka była tak gwałtowna i zagorzała, że Grace często zajmowała się usuwaniem usterek po godzinach, żeby mieć ciszę i spokój. Ale nauczyła się postrzegać swojego szefa jako rodzaj maszyny. "Jest tak okablowany”, powiedziała Blochowi, który często podpadał zwierzchnikowi. "Jeżeli ktoś zrozumiał Aikena i sposób, w jaki jest okablowany, to doskonale mu się z nim pracowało. Ja nie miałam najmniejszych trudności. Ale jeżeli ktoś usiłował powiedzieć mu, co należy zrobić, to Bóg jeden mógł go uratować". Tak poważne podejście Aikena do hierarchii wojskowej było trudne, ale koniec końców wyszło Grace na dobre - traktowanie w jego Laboratorium Obliczeniowym było w dużej mierze współmierne do rangi i zdolności, nie płci. Mundury i oficjalne tytuły przyczyniały się do zanikania tradycyjnych ról społecznych, podobnie jak całkowite odizolowanie laboratorium od świata zewnętrznego. I chociaż Aiken nigdy nie chciał mieć kobiety oficera w swoich szeregach, musiał pogodzić się z przydzieleniem mu Grace, ponieważ trzymał się protokołu. A i tak, jak Grace powiedziała Howardowi Aikenowi, potrzebowałby w laboratorium kobiety Miała słuszność.
Grace - "równy gość”
Ostatecznie została prawą ręką Aikena i wkrótce była całkowicie odpowiedzialna za Mark I. Napisała kod, który rozwiązywał część z najtrudniejszych wojennych zadań matematycznych, a nawet opracowała podręcznik obsługi tego komputera, szczegółowy pięciusetstronicowy dokument pełen schematów obwodów i kodów operacji. Wraz ze swoim współpracownikiem, Richardem Blochem, opracowała system kodowania i przetwarzania wsadowego, co uczyniło z laboratorium najwydajniejsze centrum przetwarzania danych w tamtym czasie. Utrzymała porządek w wyczerpującym środowisku wojennym, które przerastało możliwości mniej zdolnych oficerów. A oprócz zasadniczych kwalifikacji Grace, obecność kobiety w zespole niosła ważne korzyści.
Kiedy Mark I miał problemy natury mechanicznej, Grace czasem "wyciągała lusterko z torebki, wtykała je przed krzywki i szukała iskier”.
Pod koniec swojej kariery zawodowej Aiken ocenił swoją koleżankę krótko, przy czym w jego ustach było to najwyższe wyróżnienie: "Grace była równym gościem". Podobnie jak okręt podwodny, tak i Mark I przez całą dobę znajdował się pod opieką pracujących na ośmiogodzinne zmiany pracowników, a sam komputer podczas wojny działał przez imponujące dziewięćdziesiąt pięć procent czasu. Zapotrzebowanie na wojenne obliczenia nie ustawało, a pilne prośby docierały do Laboratorium Obliczeniowego z wszystkich frontów konfliktu. Grace, która zawsze była nienasycona w zdobywaniu wiedzy i uczęszczała na wszystkie możliwe zajęcia w Vassar, zabrała się do pracy. Nauczyła się przekładać złożoną oceanografię, poławianie min, zapalniki zbliżeniowe i zadania balistyczne na proste, arytmetyczne kroki, wprowadzając ściśle kontrolowany porządek do bezładnego, gwałtownego świata.
Obliczenia Mark I były narażone na wszelkiego rodzaju niepowodzenia: błędny kod, wadliwe przekaźniki oraz przestoje w pracy sygnalizowane przez złowróżbne brzęki, szczękanie i dygotanie. Aby temu zapobiec, zespół Aikena często pracował do późnej nocy. Pewnego wieczoru, we wrześniu 1945 roku, przez uchylone okno wleciała duża ćma, którą przyciągnęło światło maszyny. Niedługo potem Grace znalazła jej truchło, zgniecione przez stalową zworę jednego z przekaźników. Przykleiła je taśmą do dziennika, z dopiskiem "pierwszy przypadek rzeczywistego robala". Właśnie robal lub pluskwa, czyli angielski bug, to żargonowe określenie pochodzące jeszcze z XIX wieku - już Thomas Edison określał tym mianem mechaniczne zakłócenia, "małe usterki i utrudnienia" - a Grace słynęła w laboratorium z nabazgranych na tablicy małych robali i potworów, które bałaganiły w laboratorium: smok wygryzał dziury w taśmie dziurkowanej a "chochlik miał długi nos, którym podnosił wybite kółka i wpychał w taśmę". Po incydencie z ćmą kupiła w mieście pudełko plastikowych pluskiew i porozkładała je dla żartu za komputerem, wywołując tym dwudniową panikę.
Podczas wojny Laboratorium Obliczeniowe było odizolowane od kilku innych projektów informatycznych na świecie, a Grace Hopper, zajmując się codziennymi obliczeniami, nie miała ani czasu, ani sposobności, żeby dowiedzieć się, co dzieje się w jej dziedzinie. Jednak przedstawiciele dyscypliny czasem zjawiali się u niej. Grace pracowała na Harvardzie ledwie kilka miesięcy, kiedy z wizytą w laboratorium pojawił się fizyk John von Neumann.
Von Neumann mógł się swobodnie poruszać - większość 1944 roku spędził na odwiedzaniu rozmaitych projektów obliczeniowych w Stanach Zjednoczonych, szukając maszyny na tyle mocnej, żeby poradziła sobie ze złożonym równaniem różniczkowym cząstkowym. Mark I był pierwszym dużym komputerem, na jaki się natknął, i przez trzy miesiące tamtego lata obozował w harwardzkiej sali konferencyjnej, gdzie rozpisywał swoje zadanie na tablicy, podczas gdy Richard Bloch ustawiał operacje na komputerze.
Grace, nadal nowa w laboratorium, ale biegła w równaniach różniczkowych, asystowała na każdym etapie. Ani Grace, ani Richard nie znali zastosowania rozwiązywanego zadania - ciekawiło ich tylko jako interesujące wyzwanie matematyczne. A von Neumann był ekscentryczną postacią - ten gadatliwy węgierski teoretyk był wówczas równie znany co jego kolega z Princeton, Albert Einstein. Kiedy Bloch i von Neumann pracowali nad zadaniem, biegali w tę i z powrotem pomiędzy salą konferencyjną a komputerem. Fizyk wykrzykiwał liczby, jak tylko Mark I je z siebie wypluwał, "w dziewięćdziesięciu dziewięciu przypadkach na sto", jak z podziwem zauważyła Grace, "z najwyższą dokładnością - coś niezwykłego".
Po trzech miesiącach von Neumann zabrał te wyniki z powrotem do położonego na pustyni miasteczka Los Alamos w stanie Nowy Meksyk, gdzie konsultował projekt Manhattan. Równanie różniczkowe cząstkowe okazało się matematycznym modelem przebiegu implozji bomby atomowej. Dopóki bomby nie spadły na Nagasaki oraz Hiroszimę, Grace nie wiedziała, co dokładnie pomogła wyliczyć. Grace nie zawsze miała czas zastanowić się, dokąd trafiają wyniki obliczeń i jakim celom służą. Obliczenia stale napływały, a niektóre - jak to wykonane dla von Neumanna - były niemal niewyobrażalnie złożone.
Skuteczna programistka
Aby oszczędzić na czasie przetwarzania, Grace i Richard wymyślili składnię kodowania oraz obejścia, które położyły podwaliny pod sposób w jaki do dziś pisze się kod. Już w 1944 roku Grace zdała sobie sprawę, że dzięki wielokrotnemu wykorzystywaniu skrawków kodu, które zaczęto nazywać podprogramami, nie musi pisać kodu od zera w każdym nowym zadaniu. W czasie wojny robiono to nieoficjalnie - osoby kodujące, czyli programiści z zespołu, dzieliły się swoimi notatnikami, kopiując odręcznie odpowiednie fragmenty. W końcu zwyczaj ten został sformalizowany i przyszłe komputery konstruowano już z bibliotekami podprogramów, co pozwoliło nawet początkującym programistom korzystać z uporządkowanych w pakiety sekwencji instrukcji.
Kiedy kod Grace stawał się trudny do zrozumienia, opatrywała ona kod główny uwagami, opisując kontekst i dodając równania, dzięki czemu później kolegom było łatwiej zrozumieć jej pracę. Taki system opisywania kodu przyjął się wśród programistów i nadal jest powszechnym sposobem postępowania - dobry kod zawsze jest udokumentowany.
Właśnie takie działania, które upraszczały i zwiększały przystępność sztuki programowania komputerów, stanowiły wizytówkę Grace. Jeszcze przed wojną, kiedy prowadziła zajęcia w Vassar, kazała studentom pisać eseje o zadaniach matematycznych, ponieważ nie ma sensu uczyć się matematyki, jeżeli nie potrafi się przekazać jej znaczenia komuś innemu. Kiedy wróciła do świata cywilnego i podjęła pracę w pierwszej komercyjnej firmie informatycznej, nadal stosowała taką logikę działania. Najtrwalszy wkład Grace w nowo powstałą dziedzinę programowania polegał na jej demokratyzacji - dążyła do takich postępów programistycznych, które radykalnie zmienią sposób, w jaki ludzie komunikują się z komputerami. Z jej pomocą nie będą potrzebowali zaawansowanych terminów matematycznych, ani nawet zer i jedynek. Wystarczą im tylko słowa.
Artykuł stanowi fragment książki Pionierki internetu, autorstwa Claire Evans, która właśnie ukazała się na rynku nakładem Wydawnictwa Uniwersytetu Jagiellońskiego
Spodobał Ci się artykuł? Zobacz również: Historie ocalone od zapomnienia. Wywiad z Anną Herbich