Filozofia inżynierska: Grace Hopper i nakaz, by to komputer mówił po ludzku

Najważniejsze wnioski
- Cała filozofia Hopper w jednym zdaniu: to komputer ma mówić językiem człowieka, a nigdy człowiek nie powinien być zmuszany do mówienia językiem maszyny.
- Pierwszy kompilator, A-0 (1952), przeniósł ciężar tłumaczenia na maszynę — zautomatyzowany raz w oprogramowaniu, zamiast opłacany ręcznie przez każdego programistę po wsze czasy.
- Drut o długości nanosekundy zamienił opóźnienie w fizyczny przedmiot: 11,8 cala, które można było wziąć do ręki, dzięki czemu koszt zmarnowanego czasu przestał być abstrakcją.
- „Zawsze robiliśmy to w ten sposób” było dla niej najbardziej niebezpiecznym zdaniem w języku — a każdy z jej wynalazków był odpowiedzią na nie.
Zasada
„Ludzie są uczuleni na zmiany. Uwielbiają mówić: »Zawsze robiliśmy to w ten sposób«. Staram się z tym walczyć. Dlatego mam na ścianie zegar, który chodzi w lewo.” — Grace Hopper1
Ten temperament wypływa z jednego przekonania: maszyna ma służyć człowiekowi, a nie odwrotnie. W 1953 roku, gdy programowanie oznaczało ręczne kodowanie instrukcji liczbowych dla konkretnej maszyny, Hopper zaproponowała, by problemy przetwarzania danych formułować angielskimi słowami i pozostawić tłumaczenie komputerowi. Kierownictwo orzekło, że to niewykonalne — komputery nie rozumieją angielskiego.2 Tak naprawdę wcale nie twierdziła, że rozumieją. Twierdziła, że ciężar tłumaczenia należy do maszyny, gdzie można go zautomatyzować raz, a nie do każdego programisty z osobna i na zawsze. Na tym polega cała filozofia: to komputer ma mówić językiem człowieka, a nie na odwrót.
Siedemdziesiąt lat później łatwo przeoczyć, jak radykalne to było. Panowało założenie, że programowanie jest ezoterycznym rzemiosłem dla ludzi potrafiących myśleć w kategoriach maszyny i że taka jest po prostu natura tej pracy. Hopper odpowiadała, że natura tej pracy to wybór, którego ktoś kiedyś dokonał i nigdy nie poddał rewizji — „zawsze robiliśmy to w ten sposób” skostniało w prawo fizyki. Cała jej kariera jest odmową tego skostnienia: pierwszy kompilator, pierwszy język zbliżony do angielskiego oraz całe życie poświęcone uczeniu ludzi, że granice, które przyjmowali za pewnik, nie były rzeczywiste.
Skłonność do podważania dogmatów i misja dostępności to ten sam instynkt widziany z dwóch stron. Abstrakcja — pozwolenie człowiekowi na wyrażenie intencji we własnych kategoriach i sprawienie, by narzędzie przełożyło ją na język sprzętu — nie jest wygodą doklejoną do programowania. Dla Hopper była sednem programowania: pracą polegającą na otwieraniu maszyny przed ludźmi, którzy w przeciwnym razie pozostaliby poza nawiasem. Gdy w 2016 roku prezydent Obama uhonorował ją Prezydenckim Medalem Wolności, w uzasadnieniu ujęto to wprost — „wynalazła pierwszy kompilator, który pozwolił pisać programy zwykłym językiem, a następnie tłumaczyć je tak, by zrozumiały je komputery”.3 To samo przekonanie leży u podstaw argumentu, że dobre narzędzia powinny optymalizować pod kątem człowieka, który ich używa, a nie maszyny, która je uruchamia.
Kontekst
Grace Brewster Murray Hopper urodziła się 9 grudnia 1906 roku w Nowym Jorku.4 W 1928 roku uzyskała licencjat z matematyki i fizyki w Vassar College, a następnie tytuł magistra (1930) i doktorat z matematyki (1934) na Uniwersytecie Yale — doktorat z matematyki, którego niemal żadna kobieta z jej pokolenia nie posiadała.4 Przez lata trzydzieste wykładała matematykę w Vassar, a ten szczegół ma znaczenie: zanim została programistką, była nauczycielką, i instynkt czynienia trudnej idei uchwytną nigdy jej nie opuścił.
W grudniu 1943 roku, w środku wojny, wstąpiła do Rezerwy Marynarki Wojennej Stanów Zjednoczonych. Marynarka początkowo się wahała — Hopper miała trzydzieści sześć lat i nie spełniała wymogu wagowego — ale postawiła na swoim i w 1944 roku została przydzielona do Bureau of Ordnance Computation Project na Harvardzie, gdzie stała się jedną z pierwszych programistek maszyny Harvard Mark I pod kierownictwem Howarda H. Aikena.4 Mark I był elektromechanicznym kalkulatorem wielkości pokoju; Hopper współtworzyła jego liczący 561 stron podręcznik A Manual of Operation for the Automatic Sequence Controlled Calculator, który przez lata był fundamentalnym tekstem opisującym sposób programowania tej maszyny.4

Po wojnie odeszła ze służby czynnej, lecz pozostała w Rezerwie, a w 1949 roku dołączyła do Eckert-Mauchly Computer Corporation — wkrótce część Remington Rand — by pracować nad UNIVAC I, pierwszym komercyjnym komputerem w Stanach Zjednoczonych.4 To właśnie tam, gdy nie spawała już kodu ręcznie z jednostkową maszyną badawczą, lecz próbowała uczynić produkt użytecznym dla zwykłych przedsiębiorstw, problem jej życia nabrał ostrości. Aiken dał jej maszynę. UNIVAC dał jej klienta. Klient nie potrafił programować, a Hopper uznała, że to problem do rozwiązania przez komputer, nie przez klienta.
Dzieło
Pierwszy kompilator: A-0 (1952)
Do 1952 roku Hopper zbudowała system A-0, powszechnie uznawany za pierwszy kompilator.5 Idea była z perspektywy czasu niemal wstydliwie prosta, a w swoim czasie — heretycka. Programiści zgromadzili biblioteki użytecznych podprogramów, lecz aby ponownie wykorzystać jeden z nich, trzeba było ręcznie przepisać jego instrukcje do swojego programu i mozolnie poprawić każdy adres pamięci. A-0 Hopper pozwalał natomiast odwoływać się do każdego podprogramu za pomocą krótkiego numeru wywołania i podawać jego argumenty; system wyciągał następnie procedury z taśmy, rozwiązywał adresy i składał gotowy do uruchomienia program.5
Puryści słusznie zauważają, że A-0 działał bardziej jak coś, co dziś nazwalibyśmy programem ładującym lub konsolidatorem, niż jak nowoczesny kompilator optymalizujący.5 To prawda i warto to powiedzieć. Lecz to skok pojęciowy jest tą częścią, która trwa: program mógł być specyfikacją zapisaną wygodnymi symbolami, a oprogramowanie mogło automatycznie przełożyć tę specyfikację na kod maszynowy. Tłumaczenie stało się teraz zadaniem maszyny. Własne ujęcie powodów, dla których to zrobiła, przetrwało w jej słowach z czasów UNIVAC: „Byłam kiedyś profesorką matematyki. Zauważyłam wtedy, że istnieje pewna liczba studentów, którzy nie potrafią nauczyć się matematyki. Następnie powierzono mi zadanie ułatwienia ludziom biznesu korzystania z naszych komputerów”.2 Każdy kompilator od tamtej pory — każdy wiersz kodu napisany w jakimkolwiek języku ponad surowymi instrukcjami maszynowymi — jest potomkiem tej decyzji.
FLOW-MATIC i droga do COBOL-a
A-0 tłumaczył symbole. Kolejnym krokiem było uczynienie tych symboli angielskimi. W latach 1955–1959 Hopper i jej zespół w Remington Rand zbudowali FLOW-MATIC, pierwszy język programowania wyrażający operacje za pomocą instrukcji zbliżonych do angielszczyzny, a nie notacji matematycznej.6 Program w FLOW-MATIC zawierał polecenia takie jak INPUT, COMPARE czy MOVE — słowa, które przedsiębiorca mógł przeczytać i z grubsza zrozumieć, nie będąc matematykiem. Była to, jak to ujmowała, świadoma praca nad uczynieniem komputera użytecznym dla ludzi, którzy nigdy nie mieli zamiaru myśleć w kategoriach maszyny.
FLOW-MATIC bezpośrednio zasilił COBOL. Gdy w 1959 roku zebrał się komitet CODASYL, by zaprojektować wspólny język zorientowany na zastosowania biznesowe, FLOW-MATIC był najbardziej dojrzałym istniejącym językiem przetwarzania danych zbliżonym do angielskiego i stał się główną podstawą nowego standardu.6 Hopper słusznie nazywa się pojęciową babką COBOL-a — nie jego jedyną autorką, lecz osobą, której praca i działalność rzecznicza sprawiły, że zbliżony do angielskiego, niezależny od maszyny język biznesowy stał się w ogóle do pomyślenia. A niezależność od maszyny to druga radykalna idea tu zawarta: orędowała za poglądem, że program powinien być przenośny między różnymi komputerami, a nie ręcznie dopasowany do jednego — bezpośredni przodek przekonania „napisz raz i przenoś”, które rozsławiły Unix i C. Ten sam kod, ta sama angielszczyzna, działające na maszynach, dla których nigdy nie zostały napisane. COBOL przeżył niemal wszystko wokół siebie; dekady później wciąż obsługuje światowe systemy bankowe i rządowe, co samo w sobie jest cichym argumentem za trwałością idei zbudowanej wokół ludzkiego czytelnika.
Nanosekunda: uczynienie opóźnienia namacalnym
Najsłynniejsza pomoc dydaktyczna Hopper nie była wcale kodem. Był to kawałek drutu. Zapytana kiedyś, dlaczego łączność satelitarna trwa tak długo, postanowiła uczynić koszt czasu czymś, co człowiek może wziąć do ręki. Rozdawała kawałki drutu przycięte do 11,8 cala — maksymalnej odległości, jaką prąd elektryczny może pokonać w ciągu jednej nanosekundy, miliardowej części sekundy — tak by abstrakcyjna jednostka opóźnienia stała się fizycznym przedmiotem w dłoni.7 Następnie wyciągała zwój o długości 984 stóp: to, wyjaśniała, jest mikrosekunda. „Czasem myślę, że powinniśmy powiesić jeden taki nad biurkiem każdego programisty” — mówiła — „żeby wiedzieli, co wyrzucają, gdy wyrzucają mikrosekundy”.7

Drut to ten sam nauczycielski instynkt, który napędzał kompilator, wymierzony w inną lekcję. Kompilator mówił: nie powinieneś musieć myśleć w kategoriach maszyny, by z niej korzystać. Nanosekunda mówiła: ale musisz uszanować fizykę maszyny. Opóźnienie przestało być liczbą na slajdzie, a stało się długością, którą sygnał musi fizycznie pokonać, rządzoną prędkością światła, a każda zmarnowana mikrosekunda to drut, którym kazałeś sygnałowi biec bez powodu. Te druty znajdują się dziś w Smithsonian’s National Museum of American History.8 Są również, niemal dokładnie, „prędkość światła jest do bani” Johna Carmacka — czterdzieści lat wcześniej i wykonane z miedzi. Oba uczyniły twardą fizyczną granicę opóźnienia czymś, czego nie można sprowadzić do abstrakcji ani zbyć machnięciem ręki, bo można to było zobaczyć albo wziąć do ręki.
Pluskwa i temperament wrogi dogmatom
9 września 1947 roku operatorzy maszyny Harvard Mark II — następczyni Aikena, nad którą pracował zespół Hopper — wytropili usterkę: ćmę uwięzioną w przekaźniku nr 70, panel F. Wyjęli owada, przykleili go taśmą do dziennika i zapisali: „Pierwszy faktyczny przypadek znalezienia pluskwy”.9 Ta strona dziennika, wraz z wciąż przyklejoną ćmą, znajduje się obecnie w zbiorach Smithsonian.8
Uczciwa wersja tej historii ma znaczenie, ponieważ Hopper opowiadała ją tak dobrze, że fakty się zatarły. Ćma była prawdziwa, a data jest udokumentowana. Lecz słowo „bug” (pluskwa, robak) na określenie usterki technicznej istniało na długo przed nią — było w użyciu już w epoce Thomasa Edisona — a operatorzy niemal na pewno robili grę słów, łącząc znany sobie termin techniczny z dosłownym owadem, którego właśnie wydłubali.9 Hopper, według większości relacji, wcale nie była osobą, która go znalazła. To, co zrobiła z charakterystyczną dla siebie swadą, to spopularyzowanie anegdoty oraz słownictwa „bug” i „debugging” aż do chwili, gdy stały się rodzimym językiem tej dziedziny.9 Tak więc dokładne uznanie zasług brzmi tak: nie ukuła słowa „bug” i prawdopodobnie nie złapała ćmy, ale sprawiła, że historia i słowo przylgnęły na stałe. To swoisty rodzaj wkładu — znów wkład nauczycielki.
Temperament stojący za tym wszystkim był nieustanną wojną z odziedziczonym założeniem. Zegar na jej ścianie chodził w lewo, celowo, by dowieść, że konwencja, którą wszyscy traktowali jako daną, była arbitralna w chwili, gdy postanowiło się zbudować inną.1 „Zawsze robiliśmy to w ten sposób” było dla Hopper najbardziej niebezpiecznym zdaniem w języku — a kompilator, język zbliżony do angielskiego, przenośny program i drut w dłoni były odpowiedziami na nie.
Metoda
Metoda jest spójna na przestrzeni czterdziestu lat — obliczeń uzbrojenia, informatyki komercyjnej, projektowania języków i całego życia nauczania.
Przenieś ciężar tłumaczenia na maszynę. Powracającym ruchem jej kariery jest wzięcie pracy, którą każdy człowiek wykonuje obecnie ręcznie — rozwiązywanie adresów, myślenie w liczbowych kodach operacji, dopasowywanie kodu do jednego konkretnego komputera — i zautomatyzowanie jej raz, w oprogramowaniu. Kompilator to ta idea; FLOW-MATIC to ta idea; niezależność od maszyny to ta idea.56
Pozwól ludziom mówić własnym językiem. Programowanie powinno wychodzić użytkownikowi naprzeciw tam, gdzie się znajduje. Przedsiębiorca powinien móc napisać MOVE i COMPARE, a nie zapamiętywać zestaw instrukcji. Dostępność nigdy nie była funkcją doklejoną do narzędzia; dla Hopper była całym powodem, dla którego to narzędzie istniało.26
Uczyń abstrakcję namacalną. Gdy idea jest zbyt abstrakcyjna, by ją uszanować — nanosekunda, zmarnowana mikrosekunda — zbuduj fizyczny przedmiot, który wymusi lekcję. Drut to pedagogika jako inżynieria: nie da się spierać z rzeczą, którą trzyma się w dłoni.7
Nie ufaj zdaniu »zawsze robiliśmy to w ten sposób«. Traktuj odziedziczoną konwencję jako hipotezę, nie prawo. Zegar chodzący w lewo to metoda w postaci przedmiotu: dowiedź, że ograniczenie jest arbitralne, po prostu robiąc to inaczej.1
Proś o wybaczenie, nie o pozwolenie. „Jeśli to dobry pomysł, śmiało go realizuj. Dużo łatwiej jest przeprosić, niż uzyskać pozwolenie” — radziła — operacyjny wniosek z walki z dogmatem. (Myśl ta jest starsza od niej, a dokładne sformułowanie różni się w różnych źródłach, lecz w formie zapamiętanej przez Marynarkę i całą dziedzinę zdanie należy do niej.)10 Do abstrakcji nie dochodzi się, czekając, aż pobłogosławią ją ci, którzy są przywiązani do dawnego sposobu.
Łańcuch wpływów
Kto ją ukształtował
Howard Aiken i Harvard Mark I. Aiken wręczył Hopper jej pierwszy komputer i jej pierwszy trudny problem, a podręcznik Mark I, który współtworzyła, zmusił ją do rygorystycznego przemyślenia tego, jak instruuje się maszynę — pytania, które stało się dziełem jej życia. (Wpływ bezpośredni)
Marynarka Wojenna Stanów Zjednoczonych. Marynarka dała jej instytucję, dyscyplinę i ostatecznie platformę; pozostawała w mundurze, z przerwami, przez ponad cztery dekady. Wojskowe zapotrzebowanie na niezawodną, powtarzalną, nadającą się do nauczania procedurę ukształtowało jej przekonanie, że programowanie trzeba uczynić systematycznym i przekazywalnym, a nie rzemieślniczym. (Wpływ formujący)
Lata profesury matematyki. Zanim pojawiły się maszyny, nauczała. Nauczycielskie pytanie — jak uczynić to uchwytnym dla kogoś, kto jeszcze nie myśli tak jak ja? — jest ziarnem kompilatora, języka zbliżonego do angielskiego i drutu. (Wpływ formujący)
Kogo ukształtowała
Każdy język wysokiego poziomu. Kompilator umożliwił programowanie w czymkolwiek innym niż surowy kod maszynowy. FORTRAN, COBOL i wszystko, co nastąpiło później, opierają się na przesłance, którą udowodnił A-0: że narzędzie potrafi przełożyć wygodne dla człowieka symbole na instrukcje maszynowe.5
COBOL i informatyka biznesowa. Jako pojęciowa babka COBOL-a Hopper oddała w ręce przedsiębiorstw na całym świecie zbliżone do angielskiego, niezależne od maszyny programowanie. Język ten wciąż obsługuje ogromną część światowych systemów finansowych i rządowych.6
Dostępność jako cel programowania. Najgłębszym spadkiem nie jest język, lecz postawa: że otwieranie maszyny przed większą liczbą ludzi jest właściwą pracą, a nie jej skutkiem ubocznym. Uzasadnienie Obamy — „możemy podziękować Grace Hopper za otwarcie programowania przed milionami kolejnych ludzi” — to dokładnie to.3
Nić przewodnia
Yukihiro Matsumoto zaprojektował język Ruby tak, by optymalizować szczęście programisty — to język ma uginać się przed człowiekiem, a nie człowiek przed językiem. To Hopperowskie „ułatwij ludziom biznesu korzystanie z naszych komputerów” powiedziane ponownie w 1995 roku: bezpośredni filozoficzny spadkobierca nakazu to komputer ma mówić po ludzku. „Prędkość światła jest do bani” Johna Carmacka to jej drut o długości nanosekundy oddany w formie zdania — oba upierają się, że opóźnienie jest fizyczne, twardą granicą, którą się szanuje, a nie sprowadza do abstrakcji; ona po prostu dotarła tam czterdzieści lat wcześniej i wykonała swoją wersję z miedzi, którą można było trzymać w dłoni. A Unix i C autorstwa Thompsona i Ritchiego, zbudowane tak, by system operacyjny można było napisać raz i przenosić, a nie zespawać z jedną maszyną, są praktycznym spełnieniem niezależności od maszyny, za którą Hopper orędowała w przypadku COBOL-a: ten sam program działający na sprzęcie, dla którego nigdy nie został napisany. (Pomost serii)
Co z tego wynoszę
Lekcja, którą zachowuję, brzmi: abstrakcja nie jest luksusem dodawanym, gdy ma się czas — jest całą pracą. Hopper spojrzała na programowanie w 1952 roku, dostrzegła, że trudną część dźwiga każdy człowiek dotykający maszyny, i przeniosła ten ciężar do oprogramowania, gdzie można go było opłacić raz. To ruch, który staram się wykonać we wszystkim, co dziś buduję: znaleźć pracę tłumaczeniową, którą ludzie wykonują ręcznie, raz za razem, i zautomatyzować ją wewnątrz narzędzia. Standard jest taki sam, jak ten, że jakość jest jedyną zmienną — pytanie nigdy nie brzmi „czy człowieka da się wyszkolić, by tolerował ten interfejs?”, lecz „dlaczego miałby musieć?”.
W świecie, w którym dziś buduję — agentów, pętli narzędziowych, systemów AI — obie połowy Hopper są nośne i napierają na siebie nawzajem dokładnie w ten produktywny sposób. Połowa dotycząca dostępności mówi: pozwól człowiekowi wyrazić intencję we własnym języku i spraw, by system przełożył ją na to, czego potrzebuje maszyna — co jest, niemal dosłownie, tym, czym jest warstwa wywoływania narzędzi LLM, kompilatorem angielszczyzny siedemdziesiąt lat później. Połowa dotycząca fizyki mówi: ale nie pozwól abstrakcji okłamywać cię co do kosztu; każde wywołanie modelu to nanosekunda drutu, a układanie ich w stos, bo interfejs jest przyjazny, to sposób na wyrzucanie mikrosekund, których nie widać. A temperament — zegar chodzący w lewo, odmowa „zawsze robiliśmy to w ten sposób” — to ta część, której najbardziej potrzebuję wokół dziedziny, która myli swoje bieżące konwencje z prawami. To przekonanie, że smak jest systemem technicznym, który można badać i zmieniać, a nie tradycją, którą się dziedziczy, biegnie prosto od kompilatora z 1952 roku do agentowego mechanizmu z 2026 roku.
FAQ
Na czym polega filozofia inżynierska Grace Hopper?
Podstawowym przekonaniem Hopper było to, że komputer ma służyć człowiekowi, a nie odwrotnie: ciężar tłumaczenia ludzkiej intencji na instrukcje maszynowe należy do oprogramowania, zautomatyzowany raz, a nie do każdego programisty na zawsze. To jedno przekonanie zrodziło pierwszy kompilator (A-0, 1952) i pierwszy język programowania zbliżony do angielskiego (FLOW-MATIC), oba wymierzone w uczynienie komputerów użytecznymi dla ludzi, którzy nie potrafili — i nie powinni musieć — myśleć w kategoriach maszyny.256 Tej misji dostępności towarzyszyła nieustanna skłonność do podważania dogmatów, ujęta w jej przekonaniu, że „zawsze robiliśmy to w ten sposób” jest najbardziej niebezpiecznym wyrażeniem w języku.1
Co wynalazła Grace Hopper?
W 1952 roku zbudowała system A-0, powszechnie uznawany za pierwszy kompilator, który automatycznie tłumaczył symboliczne specyfikacje programów na kod maszynowy.5 Następnie kierowała pracami nad FLOW-MATIC (1955–1959), pierwszym językiem programowania używającym instrukcji zbliżonych do angielszczyzny, który stał się główną podstawą COBOL-a.6 Nazywa się ją pojęciową babką COBOL-a i orędowniczką programowania niezależnego od maszyny. Doszła do stopnia kontradmirała w Marynarce Wojennej USA, przeszła na emeryturę w 1986 roku jako najstarszy oficer w służbie czynnej, a w 2016 roku pośmiertnie otrzymała Prezydencki Medal Wolności; nazwano jej imieniem niszczyciel Marynarki, USS Hopper.34
Czym był „nanosekundowy” drut Grace Hopper?
Było to jej najsłynniejsze narzędzie dydaktyczne: kawałki drutu przycięte do 11,8 cala, maksymalnej odległości, jaką prąd elektryczny może pokonać w ciągu jednej nanosekundy (miliardowej części sekundy). Rozdawała je, by abstrakcyjna jednostka opóźnienia stała się fizycznym przedmiotem, który można wziąć do ręki.7 Zestawiała je ze zwojem o długości 984 stóp przedstawiającym mikrosekundę, mówiąc programistom, że pokazuje on, „co wyrzucają, gdy wyrzucają mikrosekundy”.7 Lekcja brzmiała, że opóźnienie nie jest abstrakcją — jest fizyczną długością, którą sygnał musi pokonać. Druty znajdują się obecnie w Smithsonian’s National Museum of American History.8
Czy Grace Hopper ukuła termin „computer bug”?
Nie, a uczciwa wersja jest bardziej interesująca. 9 września 1947 roku operatorzy harvardzkiej maszyny Mark II znaleźli ćmę uwięzioną w przekaźniku, przykleili ją taśmą do dziennika i zapisali „Pierwszy faktyczny przypadek znalezienia pluskwy”; ta strona dziennika znajduje się w zbiorach Smithsonian.89 Lecz słowo „bug” na określenie usterki technicznej wyprzedza tę ćmę o dekady — było w użyciu w epoce Thomasa Edisona — a operatorzy niemal na pewno robili grę słów z terminem, który już znali. Hopper, według większości relacji, sama nie znalazła ćmy. To, co zrobiła, to spopularyzowanie anegdoty oraz słownictwa „bug” i „debugging” aż do chwili, gdy stały się standardowym językiem tej dziedziny.9
Źródła
-
Philip Schieber, “The Wit and Wisdom of Grace Hopper,” OCLC Newsletter, nr 167 (marzec/kwiecień 1987). „Ludzie są uczuleni na zmiany. Uwielbiają mówić: »Zawsze robiliśmy to w ten sposób«. Staram się z tym walczyć. Dlatego mam na ścianie zegar, który chodzi w lewo.” Zobacz także “Grace Hopper,” Wikiquote. ↩↩↩↩
-
“FLOW-MATIC,” Wikipedia. Pod koniec 1953 roku Hopper zaproponowała, by problemy przetwarzania danych wyrażać angielskimi słowami kluczowymi; kierownictwo początkowo odrzuciło to jako niewykonalne. „Byłam kiedyś profesorką matematyki. Zauważyłam wtedy, że istnieje pewna liczba studentów, którzy nie potrafią nauczyć się matematyki. Następnie powierzono mi zadanie ułatwienia ludziom biznesu korzystania z naszych komputerów.” ↩↩↩↩
-
Prezydent Barack Obama, “Remarks by the President at Presentation of the Presidential Medal of Freedom,” Biały Dom, 22 listopada 2016. „Jeśli Wright to lot, a Edison to światło, to Hopper to kod.” „Wynalazła pierwszy kompilator, który pozwolił pisać programy zwykłym językiem, a następnie tłumaczyć je tak, by zrozumiały je komputery.” ↩↩↩
-
“Grace Hopper,” Wikipedia. Urodzona 9 grudnia 1906 roku w Nowym Jorku; zmarła 1 stycznia 1992 roku. Licencjat w Vassar (1928); magisterium (1930) i doktorat z matematyki (1934) na Yale. Wstąpiła do Rezerwy Marynarki Wojennej USA w 1943; przydzielona do Harvard Mark I pod kierownictwem Howarda Aikena w 1944; współautorka podręcznika Mark I. Dołączyła do Eckert-Mauchly/Remington Rand w 1949, by pracować nad UNIVAC I. Doszła do stopnia kontradmirała; przeszła na emeryturę w sierpniu 1986 jako najstarszy oficer w służbie czynnej w Marynarce; nazwano jej imieniem USS Hopper (DDG-70). ↩↩↩↩↩↩
-
“A-0 System,” Wikipedia. Napisany przez Grace Hopper w latach 1951–1952 dla UNIVAC I; powszechnie uznawany za pierwszy kompilator, choć działał bardziej jak program ładujący/konsolidator niż nowoczesny kompilator — przyjmował podprogramy określone numerem wywołania wraz z argumentami i składał gotowy do uruchomienia kod maszynowy. Następcami były A-1, A-2 i ostatecznie FLOW-MATIC. ↩↩↩↩↩↩↩
-
“FLOW-MATIC,” Wikipedia. Opracowany pod kierownictwem Hopper w Remington Rand, 1955–1959; pierwszy język programowania wyrażający operacje za pomocą instrukcji zbliżonych do angielszczyzny; gotowy do produkcyjnego użytku w latach 1958–1959; bezpośrednio ukształtował COBOL (poprzez prace CODASYL z 1959 roku), przekazując organizację plików, kwalifikację danych i strukturę sekcji programu. Zobacz także “COBOL,” Wikipedia, na temat FLOW-MATIC jako głównej podstawy języka. ↩↩↩↩↩↩↩
-
“Grace Hopper Explains the Nanosecond,” ratfactor, transkrypcja jej wykładu; oraz “Grace Hopper to Programmers: Mind Your Nanoseconds!,” High Scalability. Nanosekunda to 11,8 cala drutu (maksymalna odległość, jaką prąd elektryczny pokonuje w miliardowej części sekundy); mikrosekunda to zwój o długości 984 stóp. „Czasem myślę, że powinniśmy powiesić jeden taki nad biurkiem każdego programisty… żeby wiedzieli, co wyrzucają, gdy wyrzucają mikrosekundy.” ↩↩↩↩↩
-
“Nanoseconds Associated with Grace Hopper,” oraz “Log Book With Computer Bug,” Smithsonian National Museum of American History. Nanosekundowe druty o długości 11,8 cala oraz strona dziennika Mark II z 1947 roku wraz z ćmą znajdują się w zbiorach muzeum. ↩↩↩↩
-
“Bug (engineering),” Wikipedia, oraz “The First Use of ‘Bug’ in the Context of Computing,” HistoryofInformation.com. 9 września 1947 roku operatorzy harvardzkiej maszyny Mark II znaleźli ćmę w przekaźniku nr 70, panel F, i zapisali „Pierwszy faktyczny przypadek znalezienia pluskwy”. Termin „bug” na określenie usterki technicznej wyprzedza to o dekady (sięga epoki Edisona); Hopper prawdopodobnie nie była osobą, która znalazła ćmę, lecz pomogła spopularyzować anegdotę oraz terminy „bug” i „debug”. Zobacz także “The Bug in the Computer Bug Story,” JSTOR Daily. ↩↩↩↩↩
-
“Grace Hopper,” Wikiquote. „Jeśli to dobry pomysł, śmiało go realizuj. Dużo łatwiej jest przeprosić, niż uzyskać pozwolenie.” Powszechnie przypisywane Hopper (i cytowane w marynarskim magazynie Chips, lipiec 1986); Wikiquote zaznacza, że leżąca u podstaw myśl pojawia się w druku wcześniej niż u Hopper, zatem sformułowanie należy do niej w zapamiętanej formie, podczas gdy sama idea jest starsza. Dyskusja o atrybucji: Quote Investigator. ↩