Příchod hackerů: Grace Hopperová

13. 1. 2015
Doba čtení: 8 minut

Sdílet

V dalším díle seriálu se opět budeme věnovat ženě. S počítačem se poprvé setkala, když jí bylo 38 let – dřív to ostatně ani nebylo možné. Přesto hrála matematička Grace Hopperová na úsvitu počítačového věku jednu z nejdůležitějších rolí: babička COBOLu naučila počítače mluvit “lidskou” řečí.

Grace Hopperová nebyla, na rozdíl od skupiny dívek, které programovaly olbřímí ENIAC, žádnou tichou “operátorkou” v pozadí. Byla ostatně téměř o generaci starší – narodila se coby Grace Brewster Murrayová v roce 1906 ve skotsko-holandské rodině v New York City  a po získání bakalářského diplomu ve Vassar College získala v roce 1930 magisterský titul v oboru matematiky na univerzitě v Yale. O čtyři roky později získala doktorát a v roce 1941 profesorské místo na Vassar College.

Přestože byla již od roku 1930 vdaná za vysokoškolského profesora Vincenta Fostera Hoppera, neměli děti, a tak se Grace v roce 1943 rozhodla využít možnosti neplaceného volna na Vassar College a nastoupila do rezervních sil US Navy v rámci program WAVES (Women Accepted for Volunteer Emergency Service). Jednalo se dočasný program, který měl fungovat jen během války, v jehož rámci byly ženy umísťovány výhradně na různé pozice v zázemí přímo v USA a později též na Havaji.

Náborový plakát US Navy WAVES

Náborový plakát US Navy WAVES

Malá Grace a pomalý počítač

Hopperová musela získat při nástupu k námořnictvu výjimku – vážila pouhých 47 kg, což bylo 7 kg pod požadovaným minimem. Měla ale skvělé předpoklady coby vědec-matematik a poté, co skončila ve třídě námořních rezerv na Smith College jako první, byla přiřazena do oddělení lodních výpočetních projektů na  Harvardské univerzitě s důstojnickou hodností. Tady se záhy setkala s prvním počítačem (nikoliv se svým prvním, ale s prvním, respektive jedním z prvních).

Jednalo se o Mark I ASCC (Automatic Sequence Controlled Calculator), který zde během války uvedl do provozu tým Howarda Aikena ve spolupráci s IBM.

Mark I nebyl plně elektronický počítač. Jednalo se o elektromechanický stroj navržený již v roce 1937, jehož konstrukce sdílela některé prvky s analytickým strojem Ch. Babbage navrženým bezmála o století dříve. Vlastní výroby ASCC se ujalo IBM ve své původní “továrně číslo 1” v Endicottu, kterou si společnost (ještě coby ITR/ITRC) koupila v letech 1906–8. Námořnictvo si Mark I převzalo a uvedlo do provozu 7. srpna 1944, ještě přeď tím na něm ale byly v rámci testovacího běhu v IBM provedeny Johnem von Neumannem například výpočty implozí pro projekt Manhattan (tedy to, zda s jejich pomocí lze odpálit plutoniovou bombu). Počítač také v rámci svého testovacího provozu vypočítal matematické tabulky, které byly důvodem, proč se do jeho návrhu původně v polovině 19. století pustil Charles Babbage.

Jedním ze čtyř prvních programátorů Mark I po jeho instalaci na Harvardu se stala právě Grace Hopperová. Ve srovnání s ENIACem, o němž jsme se zmiňovali minule, měl elektromechanický Mark I své výhody i nevýhody. Obrovskou výhodou bylo relativně snadné programování. Děrné štítky a pásky byly už více než půl století doménou IBM, a tak probíhalo programování Mark I právě pomocí děrné pásky. “Naládovat” nový program bylo výrazně snazší a rychlejší než v případě přepínačů a kabelových propojek, které používal ENIAC. Ve srovnání s gigantickým elektronkovým mozkem byl ale Mark I poměrně omezený – nezvládal podmíněné větvení programů a smyčky bylo nutné zadávat jako fyzické smyčky – tedy děrnou pásku slepenou na obou koncích k sobě. Byl také neuvěřitelně pomalý. Násobení mu trvalo šest vteřin, dělení patnáct, logaritmy a trigonometrické funkce pak více než minutu. Přesto i tento první exemplář “aktivně sloužil” dlouhých patnáct let.

V roce 1947 sloužila Grace Hopperová v námořní výzkumné laboratoři Dahlgrenu ve Virginii, kde byl instalován počítač Mark II. Při jedné z kontrol byla nalezena můra, která se zachytila ve spínači relé. Hopperová ji tehdy přilepila průhlednou páskou do knihy o servisních záznamech a napsala k ní poznámku, že je to první skutečně nalezený „bug“ (bug – brouk, hmyz). Termín debugging je mnohem starší – „bug“ coby označení technické chyby používal už na sklonku 19. století T.A. Edison. Nicméně Hopperová napomohla jeho přenesení do počítačového a zejména softwarového světa.

V roce 1947 sloužila Grace Hopperová v námořní výzkumné laboratoři Dahlgrenu ve Virginii, kde byl instalován počítač Mark II. Při jedné z kontrol byla nalezena můra, která se zachytila ve spínači relé. Hopperová ji tehdy přilepila průhlednou páskou do knihy o servisních záznamech a napsala k ní poznámku, že je to první skutečně nalezený „bug“ (bug – brouk, hmyz). Termín debugging je mnohem starší – „bug“ coby označení technické chyby používal už na sklonku 19. století T.A. Edison. Nicméně Hopperová napomohla jeho přenesení do počítačového a zejména softwarového světa.

Firemní počítače

Bylo to výrazně déle, než kolik mohla sloužit Grace. S koncem války skončil i program WAVES a Hopperová nebyla přijata do standardní služby u námořnictva vzhledem k jejímu vysokému věku (38 let). Zůstala tedy u námořních rezerv jako výzkumná armádní kontraktorka – počítače ji zaujaly natolik, že odmítla i plnohodnotné profesorské místo (s definitivou) na Vassar College. Na konci 40. let se ale nechala zlákat výkonnějším železem a nastoupila do nové EMCC (Eckert-Mauchly Computer Corporation), která v té době vyvíjela nejmodernější počítač UNIVAC. Jednalo se o první komerčně úspěšný digitální počítač na světě (předcházel mu sice BINAC, postavený také EMCC, který se ale u zákazníka Northrop Aircraft nepodařilo uvést do plně úspěšného provozu; za poznámku stojí snad jen, že se jednalo o první počítač, k němuž byl sepsán uživatelský manuál – inspirací jeho autorům byly dobové servisní manuály pro motoristy – zejména na venkově si totiž v té době i v USA majitelé běžně prováděli údržbu vozidel svépomocí).

Grace Hopperová s kolegy u řídícího panelu UNIVAC (cca 1960).

Grace Hopperová s kolegy u řídícího panelu UNIVAC (cca 1960).

UNIVAC byl jiný především proto, že byl jako vůbec první počítač úspěšně dodáván uživatelům. Byly jimi sice velké podniky a státní organizace, nicméně rozdíl mezi počítačem určeným pro vědecký výzkum a komerční sféru byl obrovský. UNIVAC musel řešit praktické problémy – často přebíral agendu, kterou do té doby firmy, státní podniky (a pochopitelně i armáda) řešily pomocí tabelátorů a děrných štítků IBM. Mezi jeho prvními uživateli tak byl americký úřad pro sčítání, letectvo, mapová služba, námořnictvo, Remington Rand (ten společnost záhy EMCC koupil), General Electric, komise pro atomovou energii a některé univerzity, jimž byl ale pořízen například z prostředků atomové komise, nebo armády. Zlomovým byl rok 1954, kdy se UNIVAC dostal do “rukou” řady podniků – vedle zmíněného GE to byly pojišťovny jako Metropolitan Life nebo Pacific Mutual, utility typu Consolidated Edison a Sylvania Electric a průmyslové podniky jako US Steel (dokonce dva exempláře) nebo Du Pont.

Nikdo než velké průmyslové podniky, pojišťovny, armáda a vláda si UNIVAC nemohl dovolit. Cena se pohybovala dle instalace od stovek tisíc až po 1,5 milionu dolarů (což odpovídá zhruba 13 milionům dolarů v dnešních cenách, tedy přes 300 milionů Kč).

Ach ti uživatelé

Už od konce 40. let bylo jasné, že psaní programů ve strojovém kódu není tou nejlepší cestou. S jazyky “vyšší úrovně” experimentovali John Mauchly (ShortCode, 1949 – příkazy bylo ale nutné překládat pokaždé při běhu programu, což vše zpomalovalo) a Alick Glennie (Autocode, 1950 – patrně první jazyk s kompilátorem). Autocode byl na cestě stát se prvním raným standardem, byl to ale jazyk určený pro vědce a matematiky (a navíc v řadě velmi odlišných verzí).

Grace Hopperová v roce 1984

Grace Hopperová v roce 1984

Jak dlouhá je nanosekunda? Grace Hopperová při svých přednáškách často používala historku o tom, jak se snažila pochopit po příchodu na Harvard počítačovou terminologii. „Mluvili o mikrosekundách a nanosekundách a já nevěděla, jak si to mám představit. Tak jsem je poprosila, aby mi ukázali, jak dlouhá je nanosekunda z hlediska počítače.“ Následně Grace rozdala publiku ústřižky drátu dlouhé 11,8 palce (cca 30 centimetrů). Přesně tolik totiž světlo urazí za jednu nanosekundu ve vakuu a je to tedy i největší teoretická rychlost přenosu informací „uvnitř“ počítače (ve skutečnosti je v klasických drátech pochopitelně nižší). 

Grace Hopperová si patrně jako první při práci s “komerčními” zákazníky Remington Rand uvědomila, že matematický zápis většině z nich nic neříká a je proto třeba vytvořit jazyk, který by fungoval podobně jako lidská řeč – byl srozumitelný jak počítačům, tak “normálním” lidem. Prvním takto navrženým a pod vedením Hopperové sestaveným jazykem byl FLOW-MATIC, na kterém její tým pracoval od roku 1955. První veřejný kompilátor byl vydán v roce 1958 a o rok později byl jazyk připraven pro “ostrý” provoz. 

Toho se ale nakonec dočkal pod novým názvem. FLOW-MATIC se totiž ve stejném roce (1959) stal předlohou k prvnímu standardizovanému a přenosnému jazyku, o jehož přípravě bylo rozhodnuto na konferenci  o datových systémem a jazycích (CODASYL) pod označením Common Business Oriented Language, zkráceně COBOL.

Stojí za to poznamenat, že vytvořit na počátku 60. let první standard v oblasti programovacích jazyků  nebylo vůbec snadné a zásadní roli v celém procesu sehrálo americké ministerstvo obrany, které v podstatě donutilo (jako jeden z nejvýznamnějších zákazníků) výrobce různých počítačů, aby jej přijali a začali podporovat a nabízet pro své systémy. Díky tomu bylo možné COBOL ustanovit v roce 1968 jako mezinárodní standard.

Stovky milliard řádek 

COBOL měl startovní výhodu, a tak není divu, že oblast byznysu zejména “na západě” během 70. a 80. let víceméně ovládl. V roce 1997 odhadovali analytici společnosti Gartner, že v COBOLu bylo do té doby napsáno přes 200 miliard řádek kódu a že více než 80 % všech podnikových programů bylo do poloviny 90. let vytvořeno právě v jazyku, za jehož “babičku” byla víceméně oficiálně považována Grace Hopperová.

Hovoříte často o počítačové revoluci. Já si někdy říkám jasně, byli jsme její součástí a už proběhla. Je to tak?

Ne, jsme teprve na samotném počátku, zatím proběhla jen její předehra. Maximálně můžeme prohlásit, že máme Model T.

Grace Hopperová v TV pořadu 60 minut v roce 1983

bitcoin_skoleni

Ta sice v roce 1966 musela být podle předpisů amerického námořnictva v 60 letech opravdu penzionována, už následující rok byla ale opět povolána a to dokonce do aktivní služby – původně na 6 měsíců, nakonec se ale návrat protáhl (byť s přestávkami) až do roku 1986, kdy byla ve věku bezmála 80 let kontraadmirál Grace Hopperová nejstarším aktivním důstojníkem amerického námořnictva. Po celá 70. léta se věnovala jak problematice standardizace programovacích jazyků (zejména “svému” COBOLu a také vědeckému FORTRANu) a prosazovala v rámci US Navy nahrazení mainframů efektivnějšími minipočítači. V 80. letech především přednášela a učila a po definitivním odchodu do penze v roce 1986 působila dalších pět let jako poradce společnosti Digital. 

Grace Hopperová zemřela 1. ledna 1992. Vedle řady námořních vyznamenání a civilních ocenění a poct po ní byl v roce 1997 pojmenován raketový torpédoborec USS Hopper.

Odkazy

Autor článku