Postupem času se programování stalo jednou z nejvýznamnějších oblastí informatiky. Programování vzniklo dlouho před příchodem prvních počítačů a od té doby došlo k obrovskému vývoji v technikách a přístupech k psaní softwaru. Během svého vývoje prošlo programování periodickými změnami, od strukturálního programování po objektově orientované programování.
Strukturální programování se stalo dominantním přístupem v programování během konce 50.let a začátku 70. let. Hlavní myšlenkou strukturálního programování bylo rozdělit program na malé, snadno ovladatelné bloky, jako jsou postupy nebo funkce. Technika zahrnovala použití po sobě jdoucích, větvených a cyklických konstrukcí k řízení toku provádění programu. Důležitými pojmy byly podmínky, cykly a podprogramy, které umožňovaly strukturování kódu a umožňovaly opětovné použití.
Poznámka: Strukturální programování se stalo reakcí na problémy s navrhováním a laděním velkých programů, které byly spojeny s používáním nestrukturovaných a špagetových kódů. Metodika položila základy pro pozdější rozvoj programování.
Postupem času však strukturální programování také odhalilo své nedostatky. Ve složitých projektech se kód stal příliš komplikovaným na pochopení a podporu, aktualizace a změna programu se stala obtížným úkolem. V reakci na tyto problémy začal vývoj nového přístupu - objektově orientovaného programování.
Objektově orientované programování (OOP) se stalo populární v 80.letech. OOP nabízí nový způsob myšlení o programování založený na konceptu objektů. V tomto přístupu je program vnímán jako soubor interagujících objektů, z nichž každý má svá vlastní data a metody. OOP poskytuje vysoký stupeň modularity, hierarchickou strukturu a opětovné použití kódu, díky čemuž je vývoj programů efektivnější a podpora programu snazší.
První kroky programování
Historie vývoje programování začala příchodem prvních elektronických počítačů v polovině 20.století. Programování bylo v té době spojeno především se strojovým kódem a nízkoúrovňovými jazyky, které vyžadovaly hloubkové znalosti hardwarových funkcí počítače.
Již v 50.letech 20. století však byla potřeba vytvořit vyšší úroveň a čitelné programovací jazyky. V důsledku toho byly vyvinuty první jazyky, jako je Fortran a Cobol, které poskytovaly programátorům pohodlnější nástroje pro psaní programů.
S příchodem strukturálního programování v 60.letech 20. století se programovací metodika stala strukturovanější a snáze pochopitelnou. Důležitým průlomem ve vývoji strukturálního programování bylo zavedení konceptu bloků, podmíněných operátorů a cyklů, které umožňovaly rozdělení složitých programů na jednodušší a srozumitelnější části.
V 80.letech však vznikla potřeba ještě flexibilnějšího a modulárnějšího přístupu k programování. Tak se zrodilo paradigma objektově orientovaného programování. Základním principem tohoto paradigmatu je prezentace programu jako souboru objektů, které spolu interagují.
Historie vývoje programovacích metod tedy ukazuje, jak se programování stalo stále pohodlnějším a efektivnějším díky neustálému vývoji programovacích jazyků a metodologií.
Začátek strukturálního programování
Na přelomu padesátých a šedesátých let mělo programování řadu problémů. Jednou z nich byla složitost podpory a vývoje velkých softwarových systémů, které často představovaly nestrukturovaný soubor příkazů a přechodů. To vedlo k obtížím při ladění a úpravě kódu a neefektivnímu využívání zdrojů počítače.
Myšlenka strukturálního programování spočívá v použití pouze tří základních řídicích struktur: sekvence, větvení a smyčky. Tyto struktury umožňují vyjádřit jakékoli logické výpočty a řídicí struktury bez použití bezpodmínečných přechodů a hluboké investice.
Ve snaze vytvořit strukturovanější kód začali vývojáři aktivně využívat přístupy strukturálního programování, jako jsou bloky, postupy a funkce. Místo psaní velkých bloků kódu začali programátoři program rozdělovat na menší logické bloky, což do značné míry usnadnilo vývoj a podporu softwarových systémů.
Strukturální programování se stalo silným vlivem na programování jako celek a upoutalo pozornost výzkumníků a praktiků z celého světa. V důsledku toho se strukturální programování stalo základem pro vývoj vyšších programovacích metodik, jako je objektově orientované programování.
Jedním z nejznámějších příkladů aplikace strukturálního programování je programovací jazyk C, který nabízí mnoho nástrojů pro strukturování softwarového kódu, jako jsou funkce, podmíněné operátory a cykly. Strukturální programování zanechalo obrovský dopad na vývoj programovacích jazyků a stále jej používají weboví vývojáři a další programátoři po celém světě.
Vznik imperativního programování
Ve vývoji imperativního programování hrají klíčovou roli nízkoúrovňové programovací jazyky, jako je assembler. Assembler byl vytvořen pro správu hardwaru počítače a přímou interakci s pamětí a registry. V assembleru programátor výslovně uvádí, jaké akce má počítač provést a v jaké sekvenci.
Základem imperativního programování byl Turingův stroj vyvinutý Alanem Turingem v roce 1936. Tento abstraktní stroj, který se skládá z nekonečné pásky a hlavy, je schopen provádět určitou sadu příkazů. Myšlenka Turingova stroje sloužila jako základ pro výrobu výpočetních strojů a prvních počítačů.
Vývoj imperativního programování byl doprovázen vytvořením programovacích jazyků na vysoké úrovni, jako je Fortran, COBOL a Si. Tyto jazyky poskytovaly možnost psát kód abstraktnějším a srozumitelnějším způsobem, což programátorům usnadnilo práci a úkoly na vysoké úrovni.
S příchodem imperativního programování dostali vývojáři možnost popisovat sekvenční akce a ovládat provádění softwarových instrukcí. Tato programovací metodika zůstává populární a široce používaná v moderním programování, navzdory vzniku nových přístupů a metodologií, jako je objektově orientované programování.
Mezistupeň: procedurální programování
V tomto přístupu jsou data a funkce zpracovávány odděleně od sebe a přenášeny mezi postupy pomocí parametrů. Postupy v procedurálním programování jsou nezávislé a mohou být volány z jiných postupů. To umožňuje rozdělit program na menší a logicky propojené části, což usnadňuje ladění a úpravu programu.
| Výhody procedurálního programování: | Nevýhody procedurálního programování: |
|---|---|
| - Jednoduchost a srozumitelnost kódu | - Omezená možnost opětovného použití kódu |
| Možnost souběžného provádění postupů | - Složitost řízení globálních dat |
| - Snadné ladění a testování | - Obtížnost podpory a rozšíření kódu |
Procesní programování bylo široce používáno ve druhé polovině 20.století a bylo hlavním přístupem k vývoji softwaru. Postupem času se však jeho omezení začala projevovat, zejména při vývoji složitých a škálovatelných systémů.
V důsledku vývoje procedurálního programování byl nutný nový přístup,který by umožnil strukturovanější a flexibilnější kód. Právě tímto přístupem se stalo objektově orientované programování, které je popsáno v následující části.