Blok sem, blok tam: Vrací kopenogramy úder? | Kapitola 3
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í.
Doba ale pokročila a dnes se podobné bloky dají vytvářet automaticky, přímo v počítači – a klidně ve vašem browseru. Stále si myslím, že jde o koncept vhodný přinejlepším pro jednoduché algoritmy, ale velkou výhodou je to, že se všechny prvky automaticky mění podle toho, jak do nich zanořujete jiné prvky. Dlouhou dobu jsem tento koncept považoval za mrtvý – zvláště s tím, jak se objevovaly nástroje jako Notepad++, který nabízí automatický syntax highlighting spolu s automatickou detekcí programovacích jazyků, kontrol párů závorek a podobně.
Nebylo tomu tak. V roce 2011 začal vznikat projekt Blockly, který byl představen o rok později. Jde o systém tvorby kódu pomocí do sebe zapadající bloků, trochu připomínajících LEGO. Podporuje JavaScript, Python, PHP a Dart – a když vedle sebe srovnáte „blokový“ zápis algoritmu spolu s jeho verzí v JavaScriptu, opět vidíte, že jsme se nikam nedostali, že strukturovaný zápis v jazyce je úspornější a přehlednější. Zkrátka je zjevné, že počítačový jazyk se nejlépe zapisuje jako jazyk, jak nám to předvedla Grace Hopperová.
Ale nevadí. Systém bloků má přece jenom některé výhody, díky nimž se Blockly začíná prosazovat u nejnovější generace programovatelných robotů pro začátečníky, jako je Codey Bot, mBot, Ozobot Bit anebo Ozobot Evo.
Je to tak, ať si pořídíte kteréhokoliv z těchto robotů, dostanete se k Blockly, či přesněji řečeno k verzi Blockly určené právě pro některou z těchto platforem. Proč vlastně? Důvodů vidím několik. Za prvé, příkazy neboli bloky je možné logicky strukturovat podle jejich účelu. U platforem, jako je Ozobot, je tak možné udělat „šuplíky“ pro pohybové příkazy, nastavení barvy, zvuk, cykly, podmínky a podobně, přičemž příkazy z každé kategorie jsou barevně označeny v duchu kopenogramů.