Smyčky, podmíněné skoky, podprogramy, funkce či rekurze. To jsou všechno základní programátorské principy, které dnes musí zvládnout každý začínající programátorský elév. Připadají nám normální, samozřejmé. Ani nás nenapadne, že jako vše na světě i toto musel někdo někdy vynalézt. A zatímco za stavbou prvních počítačů stáli muži, programování bylo zprvu doménou žen. A nejvýznamnější z nich byla Grace Hopperová.
Grace Hopperová s manuálem ke svému programovacímu jazyku COBOL u počítače UNIVAC. Tedy už jako vážená programátorka. (foto: Karen, CC BY 2.0)
Narodila se v roce 1906 jako Grace Brewster Murrayová a pocházela z New Yorku, přímo z Manhattanu. Už od mládí byla vedena k technice a matematice, konkrétně svým dědečkem, stavebním inženýrem a svou matkou, matematičkou. Byla nejstarší ze tří dětí a už od mládí velice zvídavá a zkoumavá. V touze poznat, jak věci fungují, ráda různé mechanismy rozebírala, což v jejích sedmi letech odneslo hned sedm budíků v domácnosti.
Grace Hopperová
Matematička, vědkyně v oboru počítačového softwaru, autorka prvního univerzálního programovacího jazyka.
- narození: 9. prosince 1906
- úmrtí: 1. ledna, 1992
- původ: New York, USA
Vystudovala matematiku na Vassar College a na Yale získala v roce 1934 své PhD. Byla jedenáctou ženou, která v oboru matematiky doktorát na Yale získala. Poměr amerických žen oceněných doktorátem přímo z matematiky činil ve třicátých letech 15% vůči celkovému počtu úspěšných doktorandek. Dnes je tento poměr dokonce ještě dvakrát vyšší. Matematika je pro americké vysokoškolačky zjevně populárním tématem.
Ve službách námořnictva
Už od roku 1931 na Vassar College vyučovala, no a řádným profesorem se stala v roce 1941. Vdala se za kolegu, profesora srovnávací literatury Vincenta Hoppera, což asi mělo jistý vliv na její výuku, neboť po svých studentech požadovala schopnost kvalitního vyjadřování – dokonce je nutila psát na některá témata eseje.
Sama byla v této oblasti přímo skvělým vzorem, neboť jen málokdo dokázal vysvětlit i ty nejsložitější problémy, převést je nejprve do matematických rovnic a následně do jazyka srozumitelného normálním lidem. Její manželství bylo prý nudné, bezdětné, takže se v průběhu čtyřicátých let rozpadlo. Už se nikdy znovu nevdala.
Po vstupu USA do druhé světové války se Hopperová (příjmení manžela si ponechala) přihlásila do amerického námořnictva. Vystudovala námořní školu a v červnu 1944 se stala poručíkem. Předpokládala, že bude jako matematička přidělena ke kryptografům, ale ke svému překvapení ji poslali na Harvard, aby pracovala na mamutím počítači Mark I.
Hopperová nikdy dříve počítač neviděla, o tento obor se absolutně nezajímala a zprvu ji toto přidělení zklamalo. Pustila se ale s vervou do práce, vyžádala si od svého šéfa, Howarda Aikena, technickou dokumentaci k počítači a po nocích ji studovala. Jestliže měla to monstrum být schopna ovládat, musela nejprve plně pochopit, jak vlastně funguje. V tomto směru to mají dnešní programátoři nesrovnatelně jednodušší.
Mark I a první knihovna funkcí
Velkou výhodou Hopperové byl její talent ve vysvětlování problémů. Nastudovala si terminologii různých oborů, takže byla následně schopna nejprve hovořit zcela zasvěceně například s oceánografy, následně celý problém vysvětlila programátorům (pochopitelně jejich termíny) a v případě potřeby i manažerům, což bylo možná vůbec nejsložitější.
Vzhledem k tomu, že se jakožto programátorka a vykladačka problémů skvěle osvědčila, tak ji Aiken zaúkolovala, aby napsala programovací manuál k počítači.
„Nemůžu přeci napsat knihu,“ namítala. „Nikdy jsem žádnou nenapsala.“
„No, teď jsi v námořnictvu,“ konstatoval. „Ber to jako rozkaz“.
Vzala to jako výzvu a pustila se do ní s vervou. Každý den napsala pět stran, které posléze předčítala Aikenovi. Tím si skvěle vybrousila sloh, protože jakmile byla nějaká pasáž moc krkolomná, ihned to při hlasitém čtení pocítila. Nejprve vysvětlila celou historii výpočetních strojů, zmínila Babbage, Adu Lovelace, popsala celý počítač Mark I a detailní popis jeho programování. V této oblasti už udělala obrovský teoretický pokrok, takže skutečně bylo v tomto prvním programovacím manuálu co popisovat.
Jakožto matematička dokázala jakýkoliv problém algoritmizovat do sekvence matematických operací, které následně zapsala na děrné štítky. Ty poté operátoři vložili do počítače a zaveden byl rituál, že před prvním spuštění se pomodlili čelem k východu za zdar této práce. Je velká škoda, že tato tradice už dneska neexistuje – je to velmi zajímavá představa, vidět zástupy programátorů mumlat s tváří k východu nějaké modlitby po každé kompilaci.
Mezi mnoha různými programátorskými finesami a triky existoval jeden, který mohl v této době fungovat jen a pouze na Mark I, kde byl program zapsán na děrných štítcích. Hopperová stvořila totiž knihovnu funkcí, například pro sin x, log x atd., no a tyto funkce bylo možné dále využívat v dalším kódu. To významně snížilo množství chyb, protože jakmile byla funkce jednou odladěna, vyzkoušena a zařazena do knihovny, už se nikdo nemusel starat o její funkcionalitu.
Historicky první debugging
Když měla Hopperová později možnost pracovat s ENIACem, tak jeho programování (spočívající v propojovaní logických modulů) považovala za primitivní. Ano, ENIAC byl mnohem rychlejší, než Mark I, ale den vám trvalo, než jste jej dobře zapojili, zatímco Mark I bylo možné naprogramovat mnohem rychleji – v podstatě jste mohli program sestavovat už ve chvíli, kdo počítač řešil jinou úlohu. Jak konstatovala Hopperová, u ENIACu jste jeho zapojením v podstatě sestavili pro každou novou úlohu nový počítač. To opravdu nebylo moc efektivní a například knihovna základních funkcí zde existovala pouze hardwarová, takže ji nebylo možné doplňovat.
Za vývojem programování na počítačích ENIAC a Mark I stály ženy
Nicméně, nakonec se i na ENIACu podařilo vytvářet nějaké ty podprogramy a to díky skvělé šestici ženských programátorek pod vedením Jean Jenningsové. Ano, je to dnes, v době mužského převzetí tohoto řemesla, asi nepochopitelné, ale za zrozením programování jak na ENIACu, tak na Mark I, stály ženy.
Nicméně, v této době už Hopperová pracovala na dalším počítači, výkonnějším Mark II. Zde pak tým pod jejím vedením obohatil programátorskou terminologii o pojem „debugging“ – jednou v noci totiž počítač zkolaboval a při zkoumání problému byla v jednom elektromechanickém relé objevena obrovská můra o rozpětí téměř 10 cm, která je svým spečeným tělíčkem zkratovala. Od té doby přikazovala Hopperová týmu, aby každý program „debuggoval“, tedy odstranil hmyz. A to se ujalo.