Hlavní stránka Multimédia Hry a zábava Blok sem, blok tam: Vrací kopenogramy úder?
Blok sem, blok tam: Vrací kopenogramy úder?
autor: Michal Rybka , publikováno 21.4.2017
Blok sem, blok tam: Vrací kopenogramy úder?

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í.


Velké plus je v tom, že klasické jazyky rozlišují pouze velmi obecné kategorie, jako struktury, podmínky, příkazy, vstupy, výstupy apod., ale zde můžeme mít jemnější granularitu a oddělit „výkonné příkazy“ pro zvuk, pro motory, naopak vytvořit speciální kategorii příkazů „vyšší úrovně“, jako jsou příkazy pro robota, aby následoval nalezenou čáru. Docela zásadní rozdíl mezi voláním komplexního kódu, který sleduje čáru a jednoduchým kódem pro aktivaci motoru po určitou dobu, je docela na místě zvýraznit v kódu barevně – a to opravdu zvyšuje přehlednost oproti klasickému syntax highlightingu, který samozřejmě netuší, do jaké kategorie patří volaný příkaz.

Druhou nemalou výhodou je zobrazení nabídky příkazů. Programovatelné kalkulačky Hewlett Packard měly i více než 2000 příkazů, které nebylo možné jednoduše narovnat do menu, takže se objevovaly i lineární abecední seznamy a možnost vložit je alfanumericky. Když příkaz nevidíte, nevíte, že existuje. Zde jsou zorganizovnány do šuplíčků a jsou na nich zvýrazněny parametry, které lze nastavit. Je rozdíl mezi tím, když víte, jak se příkaz jmenuje a když víte, jaké všechny parametry u něj lze nastavit. U složitějšího příkazu v grafickém prostředí, jako je Blockly, je to nějakého klikání a ťukání, ale zase víte, že se před vámi nic neukrývá. Přetěžování funkcí je super u pokročilých uživatelů, ale začátečníka může zmást, protože ho nenapadne, že může funkci dodat více parametrů, než kolik mu ukázal učitel.

Nabízený příkaz funguje zároveň jako určitá ultrakompaktní forma manuálu. Ukazuje chlívečky s parametry, z nichž některé mají charakter vícenásobné volby (multiple choice), jiné dovolují vložení údaje – například příkaz pro pohyb dovoluje volbu směru a délku trvání pohybu, z čehož první parametr je multiple choice a druhý dovoluje vložení čísla. Tam, kde jste vložili název příkazu a pak jste (v lepším případě) z kontextové nápovědy odvozovali počet, pořadí a platné hodnoty parametrů, zde máte většinu informací dostupnou na první pohled, dokonce v okamžiku vložení bloku na pracovní plochu se vám vždy vyplní defaulty, takže i při jejich náhodném kladení se nemůže stát, že by vám některé parametry chyběly anebo měly nevalidní hodnoty. Je to bezpečné.

Struktura bloků má tvar puzzle a naznačuje, kam se co dá připojit. Ouško naznačuje, že po vykonání příkazu se pokračuje daným směrem, očko ukazuje, kam se má ukotvit. To platí nejen ve směru „shora dolů“, tedy v pořadí vykonávání příkazů, ale také „do strany“, tedy indikuje, že se do bloku zapojuje další sekvence vnořených bloků, či že například na místo podmínky je možné vložit blok s logickým operátorem. Přitom je podle tvaru očka či ouška jasné, co kam patří, tvary nejsou navzájem zaměnitelné. Kdo pochopí puzzle, pochopí, co se do čeho dá zapojit. Je to intuitivní.

Blok sem, blok tam: Vrací kopenogramy úder?

Posledním zajímavým prvkem je možnost ovládat všechno pouze prstem. Klasický počítač má klávesnici, snadno vkládáte jak text, tak i můžete klikat na jednotlivé prvky. Standardizované rozvržení prvků, kdy máte nalevo stromovou strukturu, nabídky apod. a napravo píšete text anebo sestavujete nějaké schéma, se u Windows etablovalo už v 90. letech.

Moderní tablety ale podobný koncept nemají a text se v nich nevkládá zrovna snadno. Blockly se používá překvapivě snadno i na tabletech, což je super. Jakkoliv je vzniklý JavaScript přehlednější než jeho Blockly varianta, na tabletech se prostě lépe tahají a skládají bloky, než se píše text obsahující čísla a spoustu speciálních znaků. Je to prostě tak.

Ne, nezměnil jsem názor na bloková schémata algoritmů obecně. Stále si myslím, že jde o formu zápisu, která je u rozsáhlých algoritmů méně přehledná, než slušně napsaný kód samotný. Stále si myslím, že pro opravdové talenty jde o nástroj příliš neohrabaný a příliš omezující, zvláště s ohledem na rozsáhlé projekty. Kopenogramy jsem považoval za akademický omyl, který má jenom co málo společného s efektivním zápisem algoritmů – a Blockly jsou na tom podobně.

Když to srovnám s prostředím pro LEGO Mindstorms EV3, vyznívá Blockly poměrně dobře. Grafické prostředí pro LEGO je dvourozměrné, přičemž hlavní toky jsou zleva doprava. To je pro mě méně intuitivní, než směr shora dolů, navíc má LEGO Mindstorms tendenci u složitých podmínek expandovat hodně do prostoru. V okamžiku, když vazba mezi instrukcemi přesáhne obrazovku a vy musíte scrollovat, abyste viděli, co je do čeho vlastně zapojené, ztrácíte přehled.



 
Komentáře naleznete na konci poslední kapitoly.
61 čtenářů navrhlo autorovi prémii: 30.5Kč Prémie tohoto článku jsou již uzavřené, děkujeme za váš zájem.
Tento web používá k poskytování služeb soubory cookie.