Ryze český program

Nedávno jsem byl požádán o posouzení nového vývojového nástroje pro děti nazvaného Petr. Z počátečních náznaků se mi zdálo, že se jedná o pouhou variaci na téma Baltazar a Baltík. Byl jsem však autory ubezpečen, že se jedná o něco úplně jiného - o naprosto původní program, který nemá s Baltazarem a Baltíkem nic společného. O naprosto revoluční program, pomocí něhož se děti naučí rychle a snadno programovat. Nechal jsem se namlsat a těšil se na slíbený balíček.

      CD záhy dorazilo, instalace proběhla zdárně a já začal zkoušet. Postupně jsem se však začal stále více podivovat nad tím, jak si někteří programátoři představují naprosto původní program. Posuzujte se mnou:

      Baltazar i jeho následník Baltík (v dalším textu budu o této dvojici programů hovořit jako o B&B) žijí v šachovnicovém prostoru s políčky o rozměrech 29 × 39 bodů. Naproti tomu Petr přichází s revoluční novinkou: žije v šachovnicovém prostoru s políčky 32 × 32 bodů!

      Zásadní rozdíl je i v číslování polí. Mnozí z vás jistě ví, že B&B mají nulový bod souřadné soustavy po dosovském vzoru vlevo nahoře. Naproti tomu Petr si ve škole zapamatoval, že počátek souřadné soustavy umísťujeme většinou vlevo dolů, a tam jej také po vzoru Karla umístil. Další významnou inovací je to, že na rozdíl od B&B, kteří před sebou čarují předměty uložené v tzv. bankách, Petřík před sebou předměty nečaruje, ale klade, a nemá je uloženy v bankách, ale v knihovně.

      Svoji nevšední invenci předvedli autoři také v oblasti metodiky: Na rozdíl od B&B, kde se děti učí v úvodních lekcích stavět domek, tak v úvodních lekcích Petříkovy sady výukových programů se děti učí stavět domeček. Navíc je tu ještě jedna zásadní odchylka: na rozdíl od B&B, kteří staví celý domek ze země a na konci stavby si otevřou dveře a jdou si dovnitř odpočinout a podívat se z okna, Petřík po stavbě svého domečku zůstane stát vedle domečku - viz obrázky (domek z pracovní plochy Baltíka (vlevo) a domeček z programu Petr (vpravo) po dokončení jejich vstupních výukových programů).



Baltík
 
Petr


      Oba programy navíc umožňují pracovat nejen s políčky, ale také s jednotlivými obrazovými body a vytvářet obrázky prostřednictvím grafických příkazů. Oba mají v sobě zakomponovány i jednoduché grafické editory, které se liší především tím, že Baltazarův a Baltíkův paint nabízí 16 barev, kdežto Petříkův editor nabízí standardně paletu 256 barev. Na druhou stranu B&B editor umožňuje editovat obrázky po celé ploše, kdežto Petrův vás omezuje na plochu jednoho předmětu.

      Přejděme ale k pracovnímu prostředí, které na první pohled vykazuje největší odlišnosti. Tady se musíme vrátit trochu do historie. S grafickými programovacími nástroji pana Soukupa se širší programátorská obec seznámila na přelomu osmdesátých a devadesátých let. Ukázala se však stará pravda, že programátoři jsou ve výběru svých nástrojů velice konzervativní a nechtějí měnit zavedené zvyky.

      Pan Soukup se tehdy rozhodl, že se na nás „programátorské dědky“ vykašle a že své úsilí soustředí na děti, které byly k jeho myšlenkám vstřícnější. Inspiroval se světem robota Karla a vytvořil obdobný svět pro svého Baltazara. Svět obohacený o záplavu možností, které v průběhu osmdesátých let osobní počítače přinesly. Baltazarovy programy se po vzoru jeho předchozích programovacích nástrojů vytvářely jako stromy obdobné Jacksonovým diagramům.

      Před několika lety se mohly naše děti seznámit s dalším čarodějem ze Soukupovy rodiny - s malým Baltíkem. Při jeho tvorbě se autor inspiroval možnostmi moderních vizuálních programovacích nástrojů, které ale dotáhl o krok dále, a možnost přetahování prvků, známou z tvorby formulářů, aplikoval i na tvorbu programů.

      Při soutěžích v programování, kde jsem býval členem poroty, jsme se pak dozvěděli, že autorova dílna chystá symbiózu obou těchto produktů, v níž ale bude místo klasického Jacksonova stromu, v němž čtete programy zleva doprava, použit všem známý adresářový strom, který programátorům umožní číst programy seshora dolů, jak jsou zvyklí. Navíc jim umožní rozbalit pouze ty části programu, jejichž struktura je zajímá, a ostatní nechat sbalené - přesně tak, jak to děláme při procházení stromu složek.

      A jsme zpátky u jádra věci. Petrovo prostředí (přesněji jeho programový strom) mi nebezpečně připomínalo předváděné ukázky budoucí podoby symbiotického Baltazara.

      Jistě pochopíte, že po těchto prvních kontaktech jsem dospěl k přesvědčení, že mám před sebou ryze český program, jehož autoři šli ve svém češství tak daleko, že se při jeho tvorbě důsledně řídili známou poučkou: „Kdo nekrade, okrádá rodinu.“ Nějak se mi totiž nechce věřit, že by autoři programu Petr při vývoji svého programu Baltazara ani Baltíka neznali. Na to jsou si myšlenky těchto produktů příliš podobné.

      Možná nám právníci vysvětlí, že podle našich zákonů se nestalo nic protiprávního. Možná. Nicméně jsem se domníval, že doba vývoje a hlavně pak prodeje českých Norton Commanderů již skončila a že se zařadíme mezi státy, kde si ten, kdo chce použít cizí myšlenky, nejprve od dotyčného koupí příslušnou licenci.

      Z tohoto zorného úhlu se mi pak začaly zdát podezřelé i rozsáhlé doprovodné knihovny s obrázky a zvuky, na jejichž legální zakomponování do produktu prodávaného za peníze bych se v tuto chvíli bál vsadit. Protože však neznám možné zdroje, nebudu se k nim raději vyjadřovat.

      Abych ale jenom nepomlouval. V Petrovi jsem našel i několik zajímavých myšlenek - např. způsob zadávání podob jednotlivých fází pohybujících se předmětů. Kromě toho se na mém počítači rychleji natahoval a spotřebovával méně prostředků než verze Baltíka, kterou jsem měl k dispozici (byla to však jen beta verze stažená z internetu). Na druhou stranu jsem v Baltazarovi i Baltíkovi vždy poznal, co se programu nelíbí, kdežto v Petrovi se mi občas nepodařilo zjistit, kde je v mém programu chyba, kvůli které Petr mou snahu o spuštění tohoto programu ignoruje.

      Při pokusech o zadání programu mne u Petra navíc znervózňovalo to, že jsem často nevěděl, na které místo se usadí právě vkládaný prvek. Nepodařilo se mi totiž odhalit jednoznačné pravidlo určující, kde mám prvek upustit, aby se zařadil tam, kde bych jej rád měl. Často se mi jej ani nepodařilo vložit do programu. Prvek asi pochopil, že se jej snažím dávat někam, kam nepatří, a vykašlal se na mne a vrátil se do rodného chlívku. Nápověda pak o těchto otázkách taktně mlčela.

      Další věcí, která mne trochu zaskočila, byly typové operátory. Petr používá jiný operátor "=" pro porovnávání čísel, jiný pro porovnávání předmětů, jiný pro porovnávání obrázků atd. Obavám se, že pro malé programátory to není optimální přístup. Obdobná záplava jednoduchých prvků slouží např. k převodům. Jiná ikona je použije pro převod data na text typu "den.měsíc.rok", jiná na text typu "měsíc/den/rok", další na "rok-měsíc-den" atd. Pochopil jsem, že kdybych potřeboval převést datum na jiný formát, než na některý z těch předem definovaných, asi bych ostrouhal.

      Možná jsem nepochopil skrytou genialitu tohoto díla. Nemohu se však zbavit pocitu, že za tímto produktem nestojí žádný vývoj analyzující, co takový začínající programátor potřebuje, a snažící se těmto potřebám maximálně vyjít vstříc. Domnívám se, že pouze nějaký „kódovač“ sesbíral řadu zajímavých věcí, s nimiž se potkal, a sestavil je dohromady. Program Petr totiž ve mně občas vzbuzoval silnou asociaci s dortem, který vařili pejsek s kočičkou a který byl vyráběn dle zásady „dáme-li tam sto dobrých věcí, bude dort stokrát dobrý“. Vzniklo tak zajímavé dílo, ale já sám bych si asi raději počkal na originál.
Rudolf Pecinovský