Blok sem, blok tam: Vrací kopenogramy úder? | Kapitola 2
Seznam kapitol
Spor o to, jak by měl vypadat srozumitelný zápis algoritmů vhodný pro začátečníky, nikdy neskončil. Na počátku 90. let nás děsily kopenogramy, blokovitý zápis algoritmů, který vyžadoval mnohem více místa a barev, než jakákoliv jeho reprezentace v kódu. S novou generací programovatelných robotů a Blockly od Google se tento koncept ve velkém vrací.
Buď jak buď, tváří v tvář nudlošpagetózním výtvorům v BASICu byl kopenogram pokrok, protože nutil autora rozdělit projekt na bloky, které se navzájem enkapsulovaly a bylo vidět, kde co začíná a kde co končí. Samozřejmě, když jste zapisovali kopenogram na papíře, končili jste v pytli velmi snadno, protože jen těžko odhadnete, jak budou bloky v blocích veliké a jestli se na papír vůbec vejdou.
Barevná softwarová matrjoška vypadá zajímavě v učebnici, realita byla mnohem horší. Přepis algoritmu z kopenogramu do BASICu byla kompilace sama o sobě a spousta lidí proto neměla kopenogramy vůbec ráda. Na VŠE, kde se kopenogramy používaly u výuky programování, jsem viděl nešťastníky, kteří nejdřív napsali kód a pak to překreslovali do kopenogramu, jelikož jim to přišlo jednodušší a přehlednější, než to dělat naopak.
Když se podíváte na to, jak kopenogram vypadá, tak to pochopíte. On opravu simuluje strukturovaný zápis, jenom dovoluje více bloků vedle sebe. Na druhou stranu je velmi neefektivní z hlediska využití prostoru – a když to zapisujete na papír ručně a vybarvujete hlavičky pastelkami, tak to si věru pomalujete. Běžný strukturovaný zápis kódu je většinou přehlednější, zvláště pokud autor není prase, nešetří místem a všechno nehustí do nepřehledných bloků.
Kopenogramy byly zajímavý teoretický princip, poněkud přehlednější než klasické vývojové diagramy, ale intuitivní rozhodně nebyly. Snahu o jejich použití pro začátečníky jsem viděl vždy jako kontraproduktivní – a to hlavně proto, že to byl systém skutečně nevhodný pro práci na papíře. Vývojové diagramy měly svoje vady, ale v zásadě dovolily začít v jednom bodě a rozvíjet myšlenku do prostoru. Mohly expandovat z výchozího bodu – a pokud se nerozvětvily moc, byly relativně přehledné. Při práci s kopenogramem jste ale už museli mít hrubou představu o tom, jak je problém komplexní, kolik struktur se noří do jiných struktur a tak dále. V případě, že se vám to začalo matlat dohromady, nemohli jste prostě vyvést čáru na kus volného papíru.