Nicméně: Dá se tím plnohodnotně programovat, tj. řešit úkoly s nějakým vztahem k praxi, nebo se tím vytvářejí jen samoúčelné programy "jak udělat while smyčku", ale jakmile se to člověk pokusí prakticky použít, tak zjistí, že to nefunguje?
Praxe myslím úkoly typu: "Na základě rozměrů obrázku A vygeneruj obrázek B stejně velký a do něj vyznač jako černé ty body, které mají na stejné pozici v obrázku A rgb hodnotu v zadaném rozmezí." nebo "Najdi v textu všechny předložky umístěné na konci řádku a přetáhni je v upraveném textu na začátky řádku dalšího."
Obávám se, že "potřeby programování" se pro běžného uživatele a profesionálního programátora velkých programových systémů (nemluvě o OS) natolik liší, že by potřebovali zcela odlišný přístup ke vzdělávání. Např. "prevence špatných návyků (typu užívání goto)" má význam pro někoho, kdo bude někdy dělat programy o (deseti)tisícovkách řádků, ale ne pro někoho, kdo skončí na programech o desítkách řádků.
Asi nejlepsi je se podivat na projekty uvedene primo na strankach Scratche, mnohdy je zajimave zjistit, jak je ktera ficurka (napriklad ve hre) vytvorena.
Jinak Scratch nauci nejzakladnejsi zaklady strukturovaneho programovani - vyznam podminek, smycek (ja vim, puriste je radi schovavaji do tail-rekurze :-), promennych a trosku i vicevlaknove programovani.
Ve skutecnosti je tam toho vic, syn se napriklad zacal zajimat o geometrii prave proto, aby dokazal vyuzit zelvi grafiku.
Ty priklady z praxe: tyto funkce nezavisi na kvalitach jazyka, ale zavisi na dostupnych prikazovych blocich, ktere v originalnim Scratchi nejsou a podle autoru ani nemaji byt. Sami autori rikaji, ze povazovali navrch Scratche za dokonceny tehdy, kdyz orezali vsechny nadbytecne funkce, takze tam treba skoro nenajdeme I/O operace atd. A popravde receno - pro vyuku programovani (tj. algoritmizace) to neni vubec nutne :-)
PS: ten priklad s textem by sel resit pomoci seznamu, ale osobne by mi to reseni pripadlo docela tezkopadne, musim to vyzkouset.