Každý počítač ke svému provozu potřebuje programy. Ty se dělí na záváděcí program, který stroj oživí, pak operační systém, který dovolí jeho chod – a pak na uživatelské programy, které mu dávají praktický smysl. Programování je komplikované – a cesta k rozumnému ovládání počítačů vedla právě přes zlepšení programování. Programy musely být udržovatelné, to znamená, že je mimo jejich vlastního autora museli chápat i jiná programátoři a vývojáři.
Původně se počítače programovaly ve strojovém kódu, což je počítačový jazyk velmi nízké úrovně, se kterým umí přímo pracovat hardware. V minulosti se schopnost psát z hlavy přímo „stroják“ považovala za důkaz vyšší programátorské moci až přímo softwarové černé magie – to opravdu nedokázal každý. Vzniklý kód byl extrémně nepřehledný a bez podrobné dokumentace ho uměl opravovat a modifikovat obvykle pouze jeho samotný autor.
Proto vznikl jazyk vyšší úrovně, assembler, který byl sice stále velice blízko strojovému kódu, ale uměl používat symbolické proměnné a návěští, takže se kód dal psát přehledněji. Programátor stále musel znát strojové instrukce, ale už si nemusel pamatovat adresy v paměti a používat proměnné a konstanty, což byl velký pokrok. Kód v assembleru uměl číst a opravovat jiný programátor, ale bez komentářů to obvykle bylo stejně dost nesrozumitelné.
Poměrně záhy po vzniku počítačů se vědci začali zabývat otázkou, jestli je možné vytvořit jazyk vyšší úrovně, který by popisoval problém, ale zároveň by nebyl závislý na konkrétním počítačovém hardware, takže by bylo možné program napsat rovnou a spouštět ho na různých strojích. V roce 1954 vzniká jazyk Fortran (Formula Translation), který byl určen pro zápis vědeckých a matematických problémů – a i když se ze začátku pochybovalo o jeho efektivitě, rychle se ukázalo, že výhody vyšších jazyků převažují.
Matematička Grace Hopperová v roce 1959 navrhla jazyk Flow-Matic, který popisoval problémy jazykem blízkým běžné angličtině, což zásadně zjednodušovalo porozumění kódu. Tento jazyk se stal základem velmi úspěšného jazyka Cobol, který se prosadil hlavně ve světě obchodu a můžeme se s ním setkat dodnes.
Cílem snažení počítačových vědců bylo samozřejmě „neprogramování“, scifistická vize, kde počítač oslovíte a sdělíte mu problém, on ho zanalyzuje a naprogramuje se sám. To je bod, který viděli vizionáři už v minulosti, ale realisticky se k němu blížíme teprve teď. V oné době se experimentovalo s celou řadou počítačových jazyků, které představovaly kompromis mezi srozumitelností a efektivitou.
Jedním zajímavým i když trochu problematickým kompromisem byl programovací jazyk Basic (1964). Ten vznikl jako jazyk pro začátečníky, byl jednoduchý a interpretovaný, což znamenalo, že jste mohli běžící program zastavit, udělat změny v kódu, podívat se na stav proměnných – a nechat program běžet dál. Byl to jazyk velmi nenáročný a dal se naučit velmi rychle, takže doslova opanoval malé počítače 70. a 80. let. Basic znal doslova každý uživatel počítačů, bez příkazu LOAD jste si nemohli většinou ani načíst hry!
Velkou nevýhodou Basicu bylo to, že kvůli své jednoduchosti nepodporoval složitější datové struktury a i programy se v něm psaly jaksi špagetózně a nepřehledně. Pro mnoho IT odborníků to bylo to největší zlo, které vyžadovalo „přeučování“ studentů počítačových věd. Přesto byl Basic zásadní pro rozvoj technologií – a mimochodem, Basic pro počítač Altair 8800 napsal i jistý mladý podnikatel jménem Bill Gates – a prodeje kopií Basicu dostaly společnost Microsoft tam, kde je dnes (možná proto byl interpret Basicu, GW-Basic, trvalou součástí MS DOS.)
Počítačová věda se ale rozvíjela i jinými směry. Tím prvním byly jazyky mířící k umělé inteligenci, jako byl LISP (1960) a Prolog (1972). Tyto jazyky byly založeny na formální logice a na představě, že problém se stroji pouze popíše a on bude schopen ze zadání usuzovat a vyvozovat sám závěry. Tato představa vypadá dnes trochu naivně, ale stala se základem mnoha metod, například automatického dokazování.
Důležitějším směrem byly jazyky zaměřující se na efektivní popis problémů – algoritmické jazyky. Ty se orientují na složité datové struktury a přehledný popis, jak se s nimi manipuluje. Cílem je usnadnit čtení zapsaných programů a jejich architekturou předcházet chybám. Mnoho chyb je totiž hodně hloupých – například neošetřené skoky ze vnitřků cyklů, takže si vývojáři řekli, že čím komplikovanější bude takovou věc udělat, tím méně podobných chyb vznikne.
V roce 1960 tak vzniká jazyk Algol, v podstatě předchůdce dnešních moderních počítačových jazyků. Jeho datové struktury a metody řízení přešly i do dalších moderních jazyků, jako je dnes velmi populární C, C++ a C# - a vlastně do všech moderních jazyků. Dnes je rozhodující práce s daty – jak jsou data uspořádaná, jak se k nim přistupuje, jak se chrání před nesprávným používáním a podobně. Dalším významným krokem jsou programátorské konvence, což jsou předpisy, kterými se řídí vývojáři ve velkých týmech a usnadňují jim čtení a správu cizího kódu, pomáhají jim rozeznat význam proměnných a obecně je vedou ke spolupráci tak, aby práce jednoho nerozbíjela výsledky práce jiného.
Programovací jazyky se tím ale staly složitější – a opět se z nich stala věc, které rozuměli jenom profesionálové. Pro běžné uživatele byly příliš složité – a místo toho, aby jim zpřístupnily technologie, postavily mezi lidi a jejich stroje komplikovanou bariéru. Bylo jasné, že počítačové jazyky se pro běžné ovládání počítačů nehodí, že se musí vymyslet něco jiného, jednoduššího a intuitivnějšího: Grafické rozhraní.
Ovládání počítačů pomocí série příkazů nás nikdy neopustilo. I dnes je možné ovládat počítače pomocí skriptů, což je popis sekvence volání jednotlivých programů. Většina skriptů je před uživateli skryta, ale i dnes si můžete otevřít Windows PowerShell a napsat si vlastní skripty!

Michal Rybka
Michal Rybka je publicista a nadšenec s 20 lety zkušeností v IT a gamingu. Je kurátorem AlzaMuzea a YouTube kanálu AlzaTech. Napsal několik fantasy a sci-fi povídek, které vyšly v knižní podobě, a pravidelně pokrývá páteční obsah na internetovém magazínu PCTuning.