Aktuální vydání

celé číslo

03

2021

Digitální transformace, chytrá výroba, digitální dvojčata

Komunikační sítě, IIoT, kybernetická bezpečnost

celé číslo

Objektově orientované programování a Turingovy a von Neumannovy medaile

číslo 6/2002

Objektově orientované programování a Turingovy a von Neumannovy medaile

Většina technicky založených lidí se asi dívala s jistou shovívavostí na oslavy začátku nového tisíciletí. Z hlediska fyziky přece nešlo o nic víc než o krůček na časovém měřítku. Ti, kdo nejsou s technikou tolik svázáni, se na nové tisíciletí naopak odvolávají a mluví o kultuře, myšlení, společnosti, vědě, morálce a komunikacích třetího tisíciletí. Někdy ale může mít i technicky založený člověk pocit, že se s přelomem století nebo tisíciletí něco změnilo. Příležitost mu k tomu poskytl např. patrný zlom v ohodnocení vzniku objektově orientovaného programování.

V USA sídlí mezinárodní společnost Association for Computing Machinery, zkráceně ACM, jejíž název lze přeložit jako Společnost pro výpočetní techniku. Jde o společnost dosti starou, která intenzivně pracovala už v 60. letech. Sleduje vývoj počítačů od jejich samého začátku a ve světě výpočetní techniky si už dávno vytvořila prestižní, autoritativní postavení. Od roku 1966 každoročně uděluje Turingovu medaili „jedincům vybraným za příspěvky technického charakteru učiněné pro počítačovou veřejnost“. Na počátku této tradice, kdy nebyl vývoj v oblasti informatiky zřetelně vymezen ani pro ty nejpovolanější, dostávaly Turingovu medaili i osoby, které jsou nyní téměř zapomenuty. Avšak brzy se „jasnozřivost“ společnosti ustálila, a tak je možné mezi nositeli zmiňovaných medailí potkávat osoby známějších jmen, jako M. Minsky (1969), J. McCarthy (1971), E. W. Dijkstra (1972), D. E. Knuth (1974) a N. Wirth (1984). Připomeňme, že Turing proslul nezávisle na prvních konstruovaných počítačích svými teoretickými pracemi o tom, co by mohly počítače dokázat, a v současné době je jeho jméno známo zvláště z Turingova testu v oblasti umělé inteligence.

Turingova medaile se uděluje každý rok obvykle jen jedné osobě; jen šestkrát za její pětatřicetiletou historii byla předána osobám dvěma. Koncem roku 2001 se tak stalo po sedmé: Turingovu medaili dostali autoři jazyka Simula 67, Norové Ole-Johan Dahl a Kristen Nygaard. Oficiální odůvodnění znělo: „Za základní ideje pro vznik objektově orientovaného programování, prostřednictvím návrhu programovacích jazyků Simula I a Simula 67.“

Než toto odůvodnění blíže vysvětlíme, všimněme si ještě jiné události. V USA sídlí také další mezinárodní společnost, Institute of Electrical and Electronic Engineers (IEEE, neoficiálně nazývaná Aj tripl í). Tato společnost má v USA i ve světě velkou autoritu – jak název napovídá, nejen ve světě výpočetní techniky. Výpočetní techniku však zmíněná společnost včlenila mezi své stěžejní zájmy (vedle radiokomunikací, vojenské elektroniky atd.) už v 50. letech minulého století a udílí světově proslulým odborníkům v této oblasti medaili nazvanou podle tvůrce prvního elektronického počítače (a mimo to všestranného matematika) Johna von Neumanna. A pro rok 2002 rozhodlo vedení IEEE, že medaili dostanou právě ti dva Norové, o nichž jsme se již zmínili jako o nositelích Turingovy medaile. Důvod pro předání von Neumannovy medaile zní na první poslech podobně jako u Turingova ocenění, totiž „Za vytvoření pojmů, které tvoří základ objektově orientovaného programování, prostřednictvím návrhu a implementace jazyka Simula 67.“

Snadno si ale každý povšimne, že ve druhém případě chybí zmínka o jazyku Simula I. To je v pořádku, neboť: přestože byl tento jazyk velkým přínosem k vývoji simulačních programovacích prostředků, nemá s objektově orientovaným programováním v podstatě nic společného. Vznikl totiž přibližně tři až čtyři roky před tím, než Dahl a Nygaard k principům objektově orientovaného programování dospěli. Zdůvodnění týkající se Turingovy medaile opakuje velmi rozšířený omyl, který je možné charakterizovat rčením „Simula jako Simula“.

Například i v seriózních časopisech se lze setkat s informací, že objektově orientované programování vzniklo spolu s jazykem Simula v roce 1967, přičemž informace je doplněna odkazem na článek o Simule I vytištěný v roce 1964.

Nelze pochybovat o tom, že oba medailisté principy objektově orientovaného programování opravdu objevili (aniž by termín object-oriented programming použili) a zahrnuli do jazyka nazvaného nejprve Simula 67 a pak prostě Simula (záměna s jazykem Simula I totiž přestala být v 80. letech aktuální, neboť všichni jeho uživatelé přešli na jazyk Simula 67). Principy objektově orientovaného programování (třídy, metody, podtřídy a virtualitu) použili v 80. letech autoři jazyků SmallTalk, kteří se k inspiraci jazykem Simula také otevřeně přiznali. Později, v 90. letech, se autoři některých jazyků inspirovali principy jazyka SmallTalk, citovali jej v literatuře a na jazyk Simula se takřka zapomnělo. Ocenění autorů jazyka Simula tak vlastně vyplňuje mezeru v historiografii informatiky a splácí dluh skutečným objevitelům objektově orientovaného programování, byť se zpožděním 34 až 35 let. To ovšem lze charakterizovat tak, že Dahl a Nygaard svou dobu o těch 34 let předešli.

Uvedené ocenění lze chápat i jako změnu smýšlení spjatou se změnou tisíciletí, o níž jsme se na počátku tohoto sdělení s jistým nadnesením zmínili: od téměř důsledného ignorování „těch dvou tam odněkud skoro za polárním kruhem“ po dvojnásobné současné oficiální ocenění. Je ovšem pravda, že v jazyku Simula 67 předvedli jeho autoři více než jen principy objektově orientovaného programování. Simula už od roku 1967 nabízí mimo jiné lokální třídy a tzv. životní pravidla spojená s třídami. Není známo, zda v budoucnosti dostanou tyto možnosti nový název (uživatelé Simuly jim trochu s humorem říkají super-object-oriented programming – SOOP), avšak už dnes je možné sledovat, jak je jen s obtížemi sleduje a snaží se dohnat (zatím bezúspěšně) světová odborná veřejnost v informatice. Že by autory Simuly čekaly další medaile opět za 35 let?

Evžen Kindler

Inzerce zpět