Obsah
1. Komerční implementace programovacího jazyka Logo
2. Projekt Logo Tree
3. Comenius Logo
4. Imagine
5. LogoMotion
6. NetLogo
7. Elica a LEGO/Logo
8. Odkazy na další informační zdroje
9. Obsah následující části tohoto seriálu
1. Komerční implementace programovacího jazyka Logo
V předchozí části seriálu o Logu jsme si popsali některé volně šiřitelné implementace tohoto programovacího jazyka. Kromě nízké (většinou nulové) pořizovací ceny se tyto implementace vyznačují dostupností programového kódu, ale ve většině případů se nejedná o programy, které by byly dobře zdokumentované (snad kromě Berkeley Loga a na něj navazujícího aUCBLoga). Volně šiřitelná Loga také často nedisponují přitažlivým grafickým uživatelským rozhraním, i když to nemusí být v mnoha případech na škodu – mnohdy postačuje klasické rozdělení okna na grafickou část a příkazový řádek s voláním (externího) textového editoru pro zápis větších částí kódu.
Pro úplnost si dnes popíšeme některé zajímavé komerční implementace Loga. Nemusí se nutně jednat o aplikace, za které by bylo nutné platit velké sumy, protože také existují ve formě demoverzí a freeware edicí (Comenius Logo, NetLogo), avšak volně dostupných zdrojových kódů, které by bylo možné upravovat a popř. dále šířit, se u těchto implementací Loga většinou nedočkáme. Pro školy a podobné vzdělávací instituce však mohou být některé dále popsané aplikace (například Imagine, který je dostupný i v plně české verzi) vhodné. Některé z dále popisovaných aplikací jsou určeny pouze pro operační systémy Microsoft Windows, další je však možné provozovat i na Linuxu či Mac OS.
2. Projekt Logo Tree
Při hledání vhodné verze Loga pro určitou platformu, nebo při pátrání po kořenech tohoto zajímavého jazyka, je možné využít informací, které byly mnoha lidmi sesbírány v projektu nazvaném jednoduše Logo Tree (Logo Tree Project). Cílem tohoto projektu, jehož průběžné výsledky jsou zveřejňovány na adrese http://www.elica.net/download/papers/LogoTreeProject.pdf (jedná se o soubor ve formátu PDF – Portable Document File Format), je nejenom zmapování všech existujících (i nadále nepodporovaných) implementací Loga pro všechny možné platformy, ale především zjištění, čím byla ta která implementace inspirována.
Výsledkem této snahy by měl být jakýsi strom vývoje Loga, podobný například stromu vývoje programovacích jazyků, který zveřejnilo nakladatelství O'Reilly – http://www.oreilly.com/news/graphics/prog_lang_poster.pdf (k dispozici jsou však i další varianty tohoto stromu). Na prvním obrázku je uvedena ukázka části tabulky se základními informacemi o několika implementacích Loga, které jsou abecedně seřazeny podle svého názvu.
Obrázek 1: Fragment z poslední verze dokumentu „Logo Tree“
3. Comenius Logo
Názvem Comenius Logo je označena objektově orientovaná implementace Loga vyvíjená na Slovensku ale rozšířená takřka po celém světě. Autoři Comenius Loga, mezi které patří Andrej Blaho, prof. Ivan Kalaš a Petr Tomcsányi, vytvořili programovací nástroj s grafickým uživatelským rozhraním pracujícím v prostředí Microsoft Windows. Konkrétně se jedná o šestnáctibitovou aplikaci kompatibilní s Windows 3.1 (vytvořenou v Borland C++), kterou je však možné provozovat i v novějších verzích Windows – pravděpodobně však už ne ve Windows Vista, ale to bude trápit pouze zcela zanedbatelné množství uživatelů :-)
Obrázek 2: Grafické prostředí Comenius LogaÚspěšným pokračovatelem Comenius Loga je aplikace Imagine, kterou si podrobněji popíšeme v následující kapitole. Grafické prostředí Comenius Loga je podobné většině ostatních intepreterů tohoto programovacího jazyka, které používají grafické uživatelské rozhraní – základní okno je rozděleno na dvě části, přičemž v horní části se nachází grafická plocha, po které se pohybuje želva, která může při svém pohybu kreslit různé grafické obrazce a v části spodní se nachází příkazový řádek a několik dalších řádků obsahujících historii příkazů a hlášení samotného interpreteru. Delší procedury se mohou zapisovat v textovém editoru, což je jistě výhodnější, než použití příkazového řádku.
Obrázek 3: Otočení želvy pomocí interaktivního dialoguTvar stopy, pomocí které želva v grafické části okna kreslí obrazce, je možné modifikovat jak programově, tak i interaktivně s využitím několika dialogových oken – viz následující screenshoty, na kterých jsou zobrazeny dialogy pro nastavení šířky a barvy kreslené stopy.
Obrázek 4: Nastavení šířky kreslené stopy Obrázek 5: Nastavení barvy kreslené stopyV Comenius Logu je možné současně používat několik želv, čehož je možné využít například při tvorbě simulací, interaktivních aplikací, jednoduchých her atd. Jak je ze screenshotů patrné, je celá aplikace (včetně příkazů Loga!) přeložena z angličtiny, k dispozici je hned několik jazykových mutací. Další informace o této sice postarší, ale stále ještě použitelné implementaci Loga (zejména na našich školách vybavených většinou méně výkonnými počítači) je možné najít na adrese http://www.comlogo.input.sk/index.html, stránka s nabídkou stažení produktu se nachází na adrese http://www.comlogo.input.sk/nastiahnutie.html.
4. Imagine
Imagine je název komerční implementace programovacího jazyka Logo, která má svoje kořeny ve výše popsaném Comenius Logu (ostatně i autoři se nemění). Svým propracovaným grafickým uživatelským prostředím (určeným pro Microsoft Windows) a způsobem práce se jedná o Logo směrované především na základní a střední školy – tomu ostatně odpovídá i licenční program se slevami pro žáky a učitele. Kromě klasických programů se želví grafikou kombinovanou s bitmapovými obrázky je v této implementaci možné vytvářet multimediální aplikace, prezentace, programy s grafickým uživatelským rozhraním (dialogy, formuláře) apod.
Obrázek 6: Dialog zobrazující základní informace o ImagineSamotný programovací jazyk byl rozšířen o možnosti psát kód s využitím objektově orientovaného programování (OOP, není to však vyžadováno – můžeme se držet i zaběhaného „funkcionálního“ přístupu), také jsou dostupné prostředky pro tvorbu paralelních procesů. Grafické uživatelské prostředí Imagine sice vychází z Comenius Loga (hlavní okno je rozděleno na grafickou část a příkazový řádek), je však v mnoha ohledech vylepšeno – přechod z šestnáctibitového vývojového prostředí na prostředí třicetidvoubitové (pravděpodobně se jedná o Borland Delphi) je patrný.
Obrázek 7: Grafické uživatelské prostředí ImagineVelkou předností této implementace, především při nasazení na našich školách, je kompletní česká lokalizace. Přeloženo do češtiny je celé grafické uživatelské prostředí (GUI) i rozsáhlá a přehledná nápověda. To však není zdaleka vše – počeštěny jsou i základní příkazy Loga. To je na jednu stranu výhodné pro snadnou práci s tímto jazykem, ale osobně dávám přednost originální (anglické) verzi, protože některé příkazy nejsou v češtině jednoznačné (příkaz left má provádět v české verzi příkaz vlevo či doleva?) a těch několik anglických příkazů dětem rozšiřuje slovní zásobu. V osmdesátých letech, kdy se u nás Logo začalo rozšiřovat, neměly s anglickými příkazy problémy ani docela malé děti v počítačových kroužcích (mnohdy to byla jediná anglická slova, která jsme znali).
Obrázek 8: Zjednodušená obdoba Class browseru a Method browseru známého z pokročilejších IDE (všimněte si počeštěných příkazů)V češtině vyšla dokonce i kniha o práci s Imagine, která je svým pojetím i formátem (sešit A4 s barevnými ilustracemi) určena pro základní školy. Podle mého názoru se jedná o velmi dobrý počin – poslední dobou spíš ojedinělý, alespoň co se týká dětské literatury o informatice – a práce s Imagine podle této knížky může být zábavná a poučná. Spolu s knížkou je dodávána demo verze Imagine, ostatně všechny screenshoty jsou vytvořeny právě v této demoverzi.
Obrázek 9: V Imagine je možné vytvořit i jednoduché dialogy a formuláře
5. LogoMotion
Společně s Imagine je dodávána i aplikace nazvaná LogoMotion (viz šestý screenshot s podrobnějšími informacemi). Nejedná se o nic jiného než bitmapový grafický editor, který je možné používat pro vytváření a úpravu ikon a kurzorů Microsoft Windows (soubory s koncovkami .ico a .cur). To však není jediná činnost, kterou je možné v tomto programu provádět. Mnohem důležitější je tvorba animovaných obrázků, které mohou být použity v Imagine pro změnu tvarů želv. Tyto obrázky se dají využít například při programování jednoduchých her, ve kterých jedna želva (samozřejmě reprezentovaná jiným obrázkem, než obrázkem původní želvy) představuje hráče a další želvy potom statické či pohyblivé objekty ve hře. Na osmibitových počítačích se tyto objekty nazývaly sprity.
Obrázek 10: Základní informace o LogoMotionZ kreslicích funkcí nabízí LogoMotion všechny základní operace, které je možné očekávat od grafických editorů této kategorie – kreslení geometrických tvarů (úsečky, kružnice, křivky, elipsy), kreslení od ruky (retuš na úrovni pixelů), změnu barvy kresby i barvy výplně, volbu kresby fixem/perem/štětcem, základní práce s písmem atd. Vzhledem k tomu, že výsledkem práce má být sprite, tj. bitmapa s průhlednými či poloprůhlednými pixely, je barvový model rozšířen i o volbu průhlednosti – takzvaný α kanál. Animace, tj. posloupnosti několika snímků, se ukládají do formátu, který byl používán už v Comenius Logu a který je možné načíst a následně použít i v Imagine.
Obrázek 11: Editace obrázku želvy v grafickém editoru LogoMotion
6. NetLogo
NetLogo patří, podobně jako v následující kapitole zmíněná Elica, mezi velmi zajímavé moderní implementace Loga. Je vyvinuto v programovacím jazyku Java, čímž je do značné míry zaručena nezávislost na platformě. V současnosti jsou oficiálně podporovány operační systémy Linux (od jádra 2.4), Microsoft Windows 98 a vyšší i Mac OS X a vyšší. Na starších systémech Mac OS 8 a Mac OS 9 je možné spustit předchozí verze NetLoga, což však spíše souvisí s JVM, než s konkrétními nároky této aplikace, které ostatně nejsou (na javovskou aplikaci) nijak vysoké.
Obrázek 12: NetLogo na počítači ApplePro úspěšné spuštění NetLoga je zapotřebí mít nainstalováno JVM (Java Runtime Environment) verze alespoň 1.4.1, v jiných implementacích JVM než od Sunu mohou být se spuštěním problémy. Novější JRE (1.5 a 1.6) je samozřejmě možné také použít.
Obrázek 13: Instalační program NetLogaNa stránce http://ccl.northwestern.edu/netlogo/download.shtml je možný výběr verze NetLoga (verze 3.x je stabilní, verze 4.x vývojová), přičemž pro stažení je nutná registrace. K dispozici jsou instalace pro Microsoft Windows, Mac OS X a obecná instalace. Je možné získat jak samotné NetLogo, tak i NetLogo s přibalenou JRE (Java Runtime Environment). Druhá varianta je vhodná pro uživatele, kteří nemají žádné JRE nainstalovanou. Už instalace NetLoga vypadá velmi profesionálně, především díky kvalitnímu instalačnímu programu vytvořenému v Javě. Samotná instalace verze 3.x zabere (bez JRE) cca 40 MB, nezávisle na použitém operačním systému. Součástí instalace je i hypertextová nápověda a mnoho demonstračních příkladů, většinou simulací.
Obrázek 14: Grafické uživatelské prostředí NetLogaNetLogo je sice možné použít i bez zaplacení (viz http://ccl.northwestern.edu/netlogo/), nejsou však k dispozici zdrojové kódy a také se nesmí dále šířit upravované verze. NetLogo je zvláštní tím, že podporuje tvorbu dvourozměrné i trojrozměrné grafiky, po které se může pohybovat neomezené množství želv. Želvy spolu mohou komunikovat a vytvářet tak mezi sebou různé vazby. Z těchto důvodů se tato implementace Loga používá zejména pro simulace paralelních systémů, systémů se zpětnými vazbami apod. Pro účely tvorby různých simulací je v NetLogu k dispozici mnoho prvků grafického uživatelského rozhraní (GUI), včetně posuvníků, grafů, přepínacích tlačítek apod.
Obrázek 15: Spuštěná simulace – stlačování plynu ve válci s pístemNetLogo je do té míry zaměřeno na simulace, že při jeho spuštění nejsou ani aktivovány příkazy pro želví grafiku. Z tohoto důvodu může být ovládání této aplikace poněkud náročnější, na druhou stranu se však jedná o pravděpodobně nejmocnější program, který jsme si v minulém a dnešním dílu popsali.
Obrázek 16: Další simulace – odrážející se kuličky Obrázek 17: Celulární automat Obrázek 18: Simulace spojování velkých komponent
7. Elica a LEGO/Logo
Velmi zajímavou implementací Loga je prostředí nazvané Elica. Toto programovací prostředí, které je inspirované systémem RLS, se od dalších implementací odlišuje zejména z toho důvodu, že rozšiřuje původně plošnou (2D) želví grafiku do třech rozměrů. Sice se nejedná o první Logo, které podporuje 3D grafiku (viz předchozí část tohoto seriálu, ve kterém jsme si popsali i MSW Logo podporující třírozměrnou grafiku), ale právě v systému Elica je podpora pro tvorbu prostorových objektů pomocí jednoduchého programovacího jazyka dotažena prakticky k dokonalosti. Více informací o této implementaci je možné získat na stránce http://www.elica.net/site/index.html. Na této stránce jsou k dispozici i zajímavě vypadající screenshoty z několika demonstračních příkladů, které stojí za to vidět.
Zcela jiným směrem se ubralo LEGO/Logo, oficiálním názvem LEGO tc logo, kde tc znamená Technic Control. Jedná se o kombinaci programovacího jazyka založeného na Logu a stavebnici LEGO, přičemž jsou mezi běžné stavební kostky zahrnuty i elektrické motory, ozubená kola, hřídele a světelné senzory, pomocí nichž je možné snímat podélný i otáčivý pohyb. Z určitého hlediska je zde prapůvodní idea Loga dotažena k dokonalosti – dítě se učí nejenom interakcí s počítačem (s jeho „želvou“), ale i tím, že si svoji želvu či jiného robota samo postaví. To však není vše – z LEGA je možné postavit například i složité továrny či stroje řízené počítačem. Na úspěch LEGO/Loga navázaly i další firmy, například Fischer Technic nabízí možnost stavby robota řízeného počítačem.
8. Odkazy na další informační zdroje
- Logo Tree Project:
http://www.elica.net/download/papers/LogoTreeProject.pdf - Language Poster (O'Reilly):
http://www.oreilly.com/news/graphics/prog_lang_poster.pdf - Informace o Comenius Logu:
http://www.comlogo.input.sk/index.html - Stránka nabízející stažení Comenius Loga:
http://www.comlogo.input.sk/nastiahnutie.html - Seminární práce o Comenius Logu:
http://nwit.pedf.cuni.cz/rotal9ap/logo/ - Informace o LEGO/Logu:
http://education.otago.ac.nz/nzlnet/Logo/legologo.html - Informace o systému Elica:
http://www.elica.net/site/index.html - Informace o systému NetLogo:
http://ccl.northwestern.edu/netlogo/ - Stažení NetLoga:
http://ccl.northwestern.edu/netlogo/download.shtml - Uživatelský manuál NetLoga ve formátu PDF:
http://ccl.northwestern.edu/netlogo/docs/NetLogo%20User%20Manual.pdf - NetLogo FAQ:
http://ccl.northwestern.edu/netlogo/docs/faq.html
9. Obsah následující části tohoto seriálu
V následující části seriálu o programovacím jazyku Logo si popíšeme základy tvorby želví grafiky. Z úvodního dílu už víme, že želví grafika (turtle graphics) tvoří velmi zajímavou (a také nejznámější) součást Loga a právem přitahuje další zájemce o tento programovací jazyk.