Vyprávěl se takový vtip v sedmdesátých letech. "Já jsem od počítače…" − "Ale to snad půjde umýt, pane inženýre!" Vtipný příliš nebyl, ale dobře zachytil dobovou atmosféru. Počítače byly tajemné stroje, skryté v nepřístupných halách či sklepeních, s nimiž přicházeli do styku jen vyvolení jedinci. A ti se v těch časech dělili do dvou skupin: na muže, kterým bylo dáno stroj ovládat a poroučet mu, a ženy, jež měly na starosti práce spíš podřadné, například děrovaly do papírových pásek a štítků znaky, co jim muži napsali. Počítače byly ovšem vnímané jako doména mužů (a bohužel to přetrvává dodnes).

Tento článek patří do placené sekce.

Pro vás jej odemknul někdo, kdo má předplatné.


Pokud budete předplatitelem, budete moci stejným způsobem odemykat placené články i pro své přátele.
A získáte i řadu dalších výhod.

Nebývalo to tak vždy. V začátcích IT oboru, ve 40. letech minulého století, byly počítače pro muže zajímavé hlavně jako technická výzva. Navrhnout a zkonstruovat takový stroj byla mužská doména. Ale tím, kdo s jeho pomocí vytvářel nějaké výpočty nebo ho přímo programoval, byly ženy. Díky tomu se staly průkopnicemi programování.

Jednou z nejvýraznějších žen v IT byla Grace Murrayová Hopperová, matematička a informatička. A také − jako první žena v dějinách Spojených států − kontradmirál námořnictva Spojených států. Dnes je po ní pojmenován raketový torpédoborec USS Hopper.

Nejen počítat, ale také se srozumitelně vyjadřovat

Pozoruhodná žena se narodila jako Grace Murrayová 9. prosince 1906. Její otec pracoval v pojišťovně, matka byla matematička a dědeček stavební inženýr.

Vystudovala matematiku a fyziku na (tehdy ženské) Vassar College. Skvělé studijní výsledky jí otevřely možnost studovat na Yaleu, kde získala doktorát z matematiky.

Hopperovou se stala v roce 1930, její manžel Vincent vyučoval angličtinu. Grace později svoje manželství popisovala jako průměrné a nudné.

Na konci války se rozvedli, a přestože neměli děti, Grace si ponechala manželovo příjmení. Znovu se už nikdy nevdala.

300 "dialektů"

Cobol byl zamýšlen jako společný programovací jazyk, přesto jen do roku 2001 vzniklo kolem tří set jeho variant.

60 let

letos uběhlo od okamžiku, kdy se Cobol začal používat. Vznikl z popudu amerického ministerstva obrany.

300 miliard

řádků počítačových programů bylo napsáno na celém světě v roce 1997. Odhadli to výzkumníci společnosti Gartner. Podle jejich zprávy bylo 80 % těchto řádků napsáno v Cobolu, 20 % ve všech ostatních jazycích.

10 centimetrů

stihne proletět světlo ve vakuu za dobu, než běžný moderní mikroprocesor vykoná jednu programovou instrukci.

Roku 1931 začala na Vassaru učit matematiku, v roce 1941 se stala docentkou. Při výuce neváhala používat různé hry, karty, kostky a další "nevážné" pomůcky, aby ukázala, že matematika má svou praktickou i hravou stránku.

Zároveň trvala na tom, že její studenti musí umět nejen počítat a matematicky myslet, ale také se srozumitelně vyjadřovat. Dokonce je nutila psát eseje. Ona sama tyto nároky splňovala: dokázala hovořit s odborníky o matematickém, technickém nebo přírodovědném problému, pak tentýž problém vysvětlit programátorům jejich jazykem a nakonec celou problematiku popsat manažerům tak, aby ji pochopili a kvalifikovaně rozhodli.

Během druhé světové války se Grace Hopperová přihlásila do armády a vstoupila k námořnictvu Spojených států. Po krátkém zacvičení získala důstojnickou hodnost a nastoupila na Harvard do fyzikální laboratoře. Zde se stala součástí týmu Howarda Aikena, konstruktéra programovatelného stroje ASCC, později zvaného Harvard Mark I.

První počítače a první programy

Stroj Mark I pracoval s čísly v desítkové soustavě (na rozdíl od pozdějších počítačů, které pracují většinou v soustavě dvojkové, tedy s nulou a jedničkou) a jeho konstrukce byla elektro-mechanická: některé části používaly mechanické prvky, převody apod., jiné logické obvody, postavené z relé. Programy a data se zadávaly pomocí děrných pásek a štítků a stroj vypočítané údaje zapisoval opět pomocí děrovačky na pásky a štítky nebo pomocí elektrického psacího stroje na papír.

Hopperová byla nejprve zklamaná, práce s takovým strojem jí připadala hodně vzdálená matematice, nicméně nastudovala dokumentaci a začala převádět matematické problémy do prvních programů. Protože byla z matematiky zvyklá na systematický přístup, dokázala nejen úlohy rozložit na posloupnosti základních strojových operací (což je základ programování), ale také nalézt často se opakující podúkoly, pro které napsala samostatný program (později se pro něj vžilo označení "podprogram"). Ten důkladně otestovala, a pokud prošel, zařadila jej do své knihovny ověřených řešení. Tím výrazně klesl počet chyb a uspořila se spousta času. Koncept knihoven výrazně zjednodušil programování a dnes je natolik běžný, že většina programátorů ani nevnímá, že by to mohlo být nějak jinak.

Moc toho neumí, ale dělá to rychle

◼ Počítač sám o sobě neumí skoro nic. Ani v operacích s čísly nepatří k premiantům: kromě základních aritmetických operací (sčítání, odčítání atd.) a logických (porovnávání aj.) umí čísla odněkud číst a někam je zapsat, popřípadě říct, kde se má v programu pokračovat. Kouzlo je v tom, že tohle všechno dokáže dělat velmi rychle.

◼ Moderní mikroprocesory provádí hned několik úloh najednou, k dispozici mají navíc koprocesory specializované na určité typy výpočtů (matematické výpočty s reálnými čísly, sady celých čísel apod.).

◼ Jak je tedy možné, že počítače – a nezapomeňme, že počítač je i každý mobilní telefon – splní téměř všechno, co od nich chceme? Odpověď je jednoduchá: někdo je musel naprogramovat. Někdo vzal všechny ty složité úlohy a převedl je na standardní sadu jednodušších. A ty na ještě jednodušší. A ty nejjednodušší pak rozložil na operace, které už počítač zvládne vykonat.

Vedoucí týmu Howard Aiken brzy rozpoznal, že Hopperová umí problémy nejen řešit, ale také srozumitelně vysvětlit, a tak si ji jednoho dne pozval a požádal ji, aby své zkušenosti a vyzkoušené postupy sepsala do knihy. Bránila se, že to neumí, že nikdy žádnou knihu nenapsala, ale Aiken prý diskusi ukončil slovy: "Teď jsi voják US Navy, tak to ber jako rozkaz!" Kniha opravdu vznikla a je považována za první manuál k počítači, jaký byl kdy napsán. I díky němu byl Mark I nejlépe zdokumentovaným počítačem své doby.

Když byl v roce 1946 spuštěn první elektronkový počítač ENIAC, požádali Hopperovou a její kolegyně, aby postupy, jež vytvořily pro Mark I, "naučily" nový stroj. ENIAC byl sice výrazně rychlejší, ale jeho programování bylo mnohem obtížnější. Pro každou úlohu bylo potřeba přepojit určité obvody tak, aby počítaly to, co bylo potřeba spočítat. Podle Hopperové bylo pro každou úlohu vlastně nutné sestavit nový, odlišný počítač. I zde existovala "knihovna ověřených úloh", měla však podobu "návodu na propojení obvodů". Nakonec se ženskému týmu podařilo i pro ENIAC vytvořit knihovnu programovou, dnešní terminologií softwarovou.

V té době už Grace Hopperová pracovala na novějším modelu počítače Mark s římskou dvojkou v názvu.

K Marku II se váže v IT světě známá historka o tom, jak jednou při hledání chyby v programu objevili operátoři v jednom relé obří můru, která svým tělem zkratovala obvody a způsobovala nesprávné výsledky výpočtů. Hopperová poté nařídila, aby před spuštěním programů vždy proběhlo důkladné "odhmyzování" celého stroje. Anglický výraz "debugging" (bug = brouk, hmyz) se pak ujal jako termín pro odstraňování chyb v programech. Samo označení "bug" pro technickou chybu je ovšem mnohem starší, používal jej už Edison na konci 19. století, Hopperová ale tento termín přenesla do IT a zpopularizovala.

Chci si koupit počítač. Bude mi rozumět?

Éra prvních počítačů pomalu končila, ale Hopperovou obor natolik zaujal, že se rozhodla u něj zůstat i po uvolnění z aktivní služby u námořnictva. S koncem války přestala být armáda primárním zákazníkem pro počítače, a ty se tak pomalu začaly rozšiřovat komerčně. V roce 1949 se tehdy třiačtyřicetiletá Hopperová rozhodla opustit akademickou půdu a nastoupila do týmu J. Prespera Eckerta a Johna Mauchlyho, kteří vyvíjeli UNIVAC, první počítač, který se měl stát univerzálně použitelným, sériově vyráběným produktem.

Do té doby počítače fungovaly v logice průmyslové zakázkové výroby: postavil se stroj, vyškolili se lidé pro jeho obsluhu a ti pak zpracovávali zakázky − tým programátorů je připravil pro zpracování, stroj spočítal potřebné a zákazník, povětšinou armádní, dostal výsledek. Počítač se pak připravil pro další zakázku. Po válce se o počítače začaly zajímat velké firmy, které nepotřebovaly počítat složité matematické problémy. Zaujala je schopnost rychle provádět velké množství rutinních úloh. Právě UNIVAC měl tuto jejich potřebu naplnit. Ale protože bylo nemyslitelné pro každý u zákazníka nainstalovaný počítač tvořit extra tým lidí a dodávat jej i s obsluhou, bylo nutné z počítače udělat samostatně prodejnou věc.

Bylo tedy jasné, že kromě samého počítače a nezbytného zaškolení musí zákazník dostat něco, co mu umožní pro počítač připravovat vlastní programy. Tedy minimálně podrobný programátorský manuál, kde bude popsána celá vnitřní struktura a všechny instrukce, které počítač umí zpracovat.

Ve čtyřicátých letech musel programátor vědět, jaký číselný kód má jaká počítačová instrukce, a zapsat přímo toto číslo do svého programu. Musel vědět, jaká je vnitřní architektura počítače, s čím a jak lze pracovat, a musel každou úlohu rozložit na ty nejzákladnější kroky, aby je mohl zakódovat. Jediné, čím si tehdy mohli programátoři ulehčit práci, bylo, že instrukcím dávali dobře zapamatovatelná jména, takže si program zapsali na papír pomocí slov ADD pro sčítání, LOAD pro čtení a STORE pro ukládání atd. Na konci ale museli tyto zkratky vždy znovu ručně převést na příslušná čísla.

Počítač sám sobě překladatelem

Knihovny programů ušetřily hodně práce a času, ale stále to nebylo příliš pohodlné. Ovšem s tím, jak výkon počítačů rostl, začali lidé jako Hopperová přemýšlet, zda by programátorům nemohly pomáhat samy počítače. Zda by třeba nemohly zpracovat vstup, napsaný pomocí zkratek pro instrukce, a na výstup posílat kódy pro tyto instrukce. Zrodil se nový typ programu: kompiler, česky překladač. Jeho úkolem je zpracovat program zadaný ve srozumitelnějším zápisu, než je řada čísel, tak, aby byl zpracovatelný strojem. Autorkou prvního programu takového typu, překladače s názvem A-0, byla právě Grace Hopperová.

Není divu, že to byla právě ona, žena, která své studenty matematiky nutila psát eseje. Při své práci se setkávala s mnoha zákazníky, kteří neměli s IT nic společného, a bylo jí jasné, že pokud se mají počítače rozšířit a být lépe použitelné, je naprosto nezbytné, aby existovaly nástroje pro programování. Takové, které dokážou zpracovat instrukce zapsané pomocí slov běžného jazyka. Ne snad že by počítače bytostně porozuměly lidské řeči, to nezvládají ani dnes, šlo o to, programovat je pomocí základní sady slov z angličtiny a pomocí matematických výrazů.

Na konci padesátých let programovací jazyky či nástroje pro snazší psaní programů vyvíjelo mnoho firem. Nakonec se z popudu Ministerstva obrany USA sešla komise, která si dala za cíl nalézt, popřípadě vyvinout jazyk, který bude standardizovaný, přenositelný a jednoduchý na pochopení. Do užšího výběru postoupil také Flow-Matic Grace Hopperové. A právě na základě Flow-Maticu vznikl jazyk, který dostal název Cobol (COmmon Business-Oriented Language, česky Společný obchodní jazyk). Byl to první jazyk, který umožnil věnovat méně času tomu, JAK má počítač něco udělat, ale zaměřit se na to, CO má vykonat.

Jak rychlý je počítač?

◼ Grace Hopperová svým posluchačům vysvětlovala, jak si představit nanosekundu (jednu miliardtinu sekundy), což je časová jednotka, která se u počítačů často používá. Rozdala lidem drát dlouhý 30 centimetrů (zhruba takový je rozměr delší strany A4) a řekla: "Toto je vzdálenost, kterou urazí světlo za jednu nanosekundu!" Informace v počítači za tu dobu urazí jen o něco kratší vzdálenost.

◼ Dnešní běžné počítače pracují s frekvencí hodinových pulzů okolo 3 GHz, tedy tří miliard pulzů za sekundu. Což znamená, že jeden pulz trvá třetinu nanosekundy. Než světlo uletí 30 centimetrů, v počítači proběhnou tři pulzy. Než přeletí novinovou stránku (zhruba A3) od shora dolů, v počítači hodiny tiknou třeba šestkrát, sedmkrát. Během té doby moderní mikroprocesor provede zhruba šest instrukcí v každém svém jádru.

◼ Běžný čtyřjádrový procesor tedy vykoná 24 instrukcí jen za dobu, než světlo přeletí stránku novin na výšku.

Z dnešního pohledu jde o jazyk málo efektivní. Je velmi "upovídaný" a programy v něm připomínají strukturou knihu: dělí se na oddíly, ty se dělí na sekce (kapitoly), kapitoly se dělí na odstavce a odstavce na věty. Každá věta obsahuje několik frází složených ze slov a ukončených tečkou.

Snad i proto označuje programátorský folklor Cobol za jazyk, který je navržen ke čtení, nikoli k psaní programů. Vyšel z něj ale třeba i dodnes velmi používaný databázový jazyk SQL. V šedesátých letech se každopádně Cobol stal nejpoužívanějším programovacím jazykem. Ve sféře velkých aplikací zůstává nejpoužívanější dodnes − jde například o bankovní systémy, jež mají životnost třeba 30 let. Předstihl tak svého staršího předchůdce, Fortran. I ten se dodnes používá, zůstal však doménou vědeckých výpočtů.

Grace Hopperová se věnovala IT až do konce svého života.

V roce 1966 byla sice penzionována a uvolněna z armády, ale po několika měsících se na svou pozici zase vrátila a 1. srpna 1967 byla požádána, aby vedla další vývoj Cobolu. V roce 1986 odešla oficiálně do penze, ale stále působila jako konzultantka ve společnosti DEC. Zemřela 1. ledna 1992. Přínos Grace Hopperové pro svět IT je naprosto zásadní a průkopnický. Zejména proto, že navrhla a vyzkoušela hned několik fundamentálních programátorských principů. O nevšednosti její osobnosti svědčí i jeden z jejích citovaných výroků: "Lidé jsou alergičtí na změny. Rádi říkají:,Vždycky jsme to dělali takto!' Zkouším s tím bojovat. I proto mám na zdi hodiny, jejichž ručičky obíhají pozpátku."

 

Související

Líbil se vám článek? Chcete víc takových článků?

Kupte si předplatné a můžete si je číst všechny. Navíc bez reklam a s možností sdílet přátelům.

Vyzkoušejte předplatné HN+
Newsletter

Týden s technologiemi Otakara Schöna

Události posledního týdne ve světě technologií podle Otakara Schöna

Editor rubriky Tech Otakar Schön pro Vás vybírá nejzajímavější nebo nejzásadnější události ze světa technologií, které se odehrály v uplynulém týdnu. Každý pátek v podvečer najdete ve své mailové schránce.

Přihlášením se k odběru newsletteru souhlasíte se zpracováním osobních údajů a zasíláním obchodních sdělení, více informací ZDE. Z odběru se můžete kdykoli odhlásit.

Přihlásit se k odběru