Ve svém posledním článku jsem psal, že v kroužku pokročilých začínáme letošní rok s programováním v jazyku Java. Několik známých, kteří také učí na základních školách programování, se mne ptalo na důvody tohoto rozhodnutí. Pokusím se je zde vysvětlit.
Proč změna
Jak jsem již naznačil v minulém článku, nechci děti učit využívat nejrůznější speciální triky a fígle v nějakém konkrétním prostředí, ale chci je učit základům moderního programování. Abych tak mohl učinit, musím si vybrat takový jazyk, který podporuje co nejširší spektrum možností, které se v moderním programování využívají. Takovým jazykem, bohužel, Baltík není.
Pro výuku základů programování toho Baltík nenabízí málo (kompletní sada programových konstrukcí, literály a pojmenované konstanty, lokální a globální proměnné, procedury s parametry volanými hodnotou i odkazem, pole, soubory, logické i bitové operace, základy práce s klávesnicí a myší), ale po roce, nejvýše po dvou se jeho nabídka vyčerpá. Pak nám začnou při výuce chybět funkce a především pak možnost definovat datové typy, o objektově orientovaném programování ani nemluvě.
Nezbývá tedy, než se obrátit k nějakému jazyku, jehož paleta nástrojů a možností je výrazně komplexnější.
Proč Java
V závěrečném článku série zveřejněné v loňském školním roce (Přechod na klasické programovací jazyky - finální výběr) jsem dospěl k závěru, že chceme-li ze svých svěřenců vychovat budoucí programátory, kteří budou schopni sledovat další vývoj programových technologií, měli bychom si zvolit jazyk Java nebo C#. Já jsem zvolil jazyk Java.
Důvodů, které hovoří v jeho prospěch, je celá řada. Rozdělil bych je do tří kategorií: první vychází z vlastností samotného jazyka, druhá z jeho použitelnosti ve výuce a programátorské praxi a třetí ze snadné dostupnosti potřebných nástrojů.
Vlastnosti jazyka
- Java je moderní, objektově orientovaný jazyk, který již neumožňuje programovat klasicky (i když – jak pamětníci vědí – opravdový programátor dokáže vytvářet fortranské programy v každém programovacím jazyce).
- Je maximálně jednoduchý a čistý bez záplavy nejrůznějších výjimek a specialit (na rozdíl např. od Visual Basicu nebo C++). S výjimkou polí nemá žádné vlastní datové struktury, vše je řešeno prostřednictvím knihovních modulů.
- Pokrývá prakticky celé spektrum úloh, jejichž řešení chceme žáky naučit. Nabízí relativně jednoduché a elegantní prostředky i pro takové “fajnovosti”, jakými jsou programování sady vzájemně kooperujících procesů, událostmi řízené programování, práci v síti, tvorba distribuovaných aplikací, webové služby a další.
- Zrušil používání ukazatelů, které jsou považovány za datovou obdobu zatracovaného příkazu GOTO (jako programátorovi mi to může vadit, protože se s ukazateli daly dělat fantastické věci, ale jako učitel to musím přivítat) a zavedl automatickou správu paměti (garbage collector), což výrazně zvýšilo produktivitu práce a robustnost výsledných programů.
- Používá se při vývoji aplikací všech rozměrů od mikroaplikací pro čipové karty, přes aplikace pro mobilní telefony (tam se dokonce jiný jazyk prakticky nepoužívá) a stolní počítače až po rozsáhlé distribuované systémy běžící na řadě navzájem kooperujících počítačů.
Použití Javy ve výuce a v praxi
- Není závislý na operačním systému. Tentýž program napsaný v Javě může běžet pod Windows či Linuxem stejně jako pod operačním systémem počítačů Macintosh či na sálových počítačích IBM. To nemluvím o tom, že k programování mobilních telefonů, což je současný hit, je Java téměř nutná (tam se Microsoft zatím neprosadil).
- Stále více vysokých škol zavádí Javu jako programovací jazyk svých úvodních kurzů programování. V této oblasti již má Java ve světě téměř dominantní pozici.
- Podle studie zveřejněné v červencovém Software Development Times by se v příštím roce měla Java stát nejpoužívanějším programovacím jazykem vývojářů (mělo by ji používat 52,6 % firem). U velkých projektů Java již nahradila donedávna dominantní C++, takže 60 % velkých softwarových projektů otevíraných v letošním roce bylo programováno v Javě.
Poznámka: Přiznejme si, že momentální pozice Javy jako nejpoužívanějšího programovacího jazyka bude pravděpodobně dočasná, protože lze čekat, že Visual Basic .NET se díky popularitě svého předchůdce při vývoji drobných aplikací a hlavně díky očekávané podpoře v příštích verzích balíku Office asi časem vydrápe na vedoucí postavení zabírané do letošního roku jeho předchůdcem – i když kdo ví? Zatím se zastánci starého VB přechodu na tento nový jazyk zuby nehty brání, protože je nutí programovat čistě – viz např. článek v ComputerWorld 34/2002.
Dosažitelnost nástrojů
Shrnutí
Vynechám-li didaktickou hodnotu jazyka, která je nesporná, tak jeho velikou výhodou je to, že stačí jednou investovat do dostatečně silného hardwaru a vše ostatní potřebné již lze stáhnout z webu. Nemusím se tedy obávat, že po každém dalším kroku směrem k dokonalejším technologiím budu muset rodičům zdůvodňovat další náklady.
Java je sice poněkud náročnější na hardware počítače, ale v době, kdy cena potřebných 256 MB paměti začíná na 1400 Kč, nepovažuji její nároky pro kroužek pokročilých za přehnané, zejména srovnám-li to s cenami, které děti platí za výuku na hudební nástroje nebo vybavení pro sport.
Judith M. Bishop nedávno ve svém článku A philosophy of teaching Java as a first teaching language napsala: “Nyní se již neptáme, zda učit Javu, ale jak ji učit.” – a o tom si začneme povídat příště.
Příště se pokusím zamyslet nad tím, jak učit objektově orientované programování.
Autor pracuje jako EDU expert ve firmě Amaio Technologies, Inc.
Rudolf Pecinovský
0 komentářů:
Okomentovat