Na rozdíl od klasického programování, jehož principy se nemění, se technologie související s vytvářením, budováním a provozem webových stránek mění stále. Základem je samozřejmě rodina standardizovaných jazyků či gramatických pravidel HTML, CSS, JavaScript, PHP. Za posledních 10-15 let ovšem došlo k bouřlivému rozvoji dalších technologií, které posunují „programování webových stránek“ z oblasti laické zábavy do oblasti úzce odborně profilované. Objevuje se tedy otázka, co z uvedené problematiky (a zda vůbec) má být předmětem výuky na základních a středních školách.
Zatímco před deseti patnácti lety začínala tvorba webových stránek tím, že autor začal psát HTML kód, dnes nainstaluje webovou aplikaci. Lze je řadit podle účelu do mnoha kategorií, pro nejširší účely se používají redakční (nebo publikační) systémy či systémy pro správu webového obsahu, např.:
CMS - content management systém, např. WordPress, Drupal, PivotX, Pico, Get Simple;
LMS - learning management systém, např. Moodle, Claroline, ATutor;
DMS - document management system a další;
Množství úkolů, které se dříve vykonávaly na lokálním počítači, dnes probíhají ve webové aplikaci. Pojem „cloud“ je jen marketingové označení pro technologická řešení, které se označují zkratkami
SaaS - software as a service, software jako služba;
PaaS - platform as a service, platforma operačního systému jako služba.
Aktivita označovaná tradičně „vytvoření webových stránek“ dnes v první řadě znamená „publikování obsahu v redakčním systému“, nikoliv „programování webových stránek“. Laicizace proběhla úspěšně, ale přesto mnoho laiků vytrvale smutní, že neumí programovat (ačkoliv to pro budování webových stránek není potřeba).
Berme v potaz, že se nejedná o algoritmizaci a skutečné „tvrdé“ programování. Ve velké míře jde o práci s kódem, s jeho příklady a adaptací na konkrétní situaci. Tato činnost se označuje jako kódování - ostatně hierarchie programátorů je poměrně členitá (kodér je nejníž a de facto ani programátorem není).
Má praktický smysl učit žáky programovat webové aplikace? Domnívám se, že nikoliv. Učitel informatiky nemá odbornou výbavu takového charakteru - pokud se v posledních deseti letech aktivně nepodílel na vývoji webových stránek, což předpokládat nelze. Naopak je poměrně snadné a vysoce praktické naučit žáky pracovat s redakčními systémy. Vkládat obsah (obrázky, videa), správně vytvářet odkazy (velké množství uživatelů to neumí), vymýšlet funkční nadpisy článků, ovládat redakční systém a chápat jeho funkce.
V uplynulé dekádě se objevily nové programovací a popisné jazyky, které přispěly k rozvoji internetu. Namátkou je to Python, Ruby nebo různá rozšíření původního HTML (XHTML, MathHTML – nejde však o programovací jazyky, nýbrž spíše jednoduchou popisnou gramatiku). Rozvíjely se také možnosti velmi důležitých nástrojů XML, CSS, JavaScript (z něj vycházející knihovna jQuery). Stranou necháváme databáze a vůbec principy ukládání a zpracovávání dat (HTML5, AJAX, API, JSON atp.).
Realita je dnes taková, že původní PHP+HTML+CSS je dnes jen jednou z možností, jak budovat webové aplikace (opět - nikoliv jen stránky). Naučit se vše není v silách jedince. Logicky se tedy každý profiluje určitým směrem. Význam HTML je dnes na tak nízké a základní úrovni, že sám o sobě nemá využití, vždy je potřeba umět ještě něco - např. alespoň PHP a JavaScript.
Pokud se žáci učí HTML a CSS, nemá to praktický smysl, využití této dovednosti je nulové. Kdo umí programovat ve skutečném jazyce, pak je pro něj HTML nebo CSS (pokud by se s ním náhodou minul) úkol na pár hodin.
Jako vhodný se jeví úvod do programování v jazyce PHP nebo spíše Python. Oba jazyky jsou multiplatformní, Python navíc není určen jen pro webové aplikace (je využitelný také pro lokální aplikace). Ukázalo se, že je také nejpopulárnějším jazykem pro začátečníky na amerických univerzitách. Existuje ohromné množství nástrojů, dokumentace, tutoriálů a dalších materiálů, které pomohou začít. Vzhledem k tomu, že jde o standardní programovací jazyk, lze cvičit algoritmizaci, a přitom dosahovat rychlých a viditelných výsledků (vytvářet aplikace). Navíc má v Česku velkou a přívětivou komunitu profesionálů a dostatek výukových nástrojů, např. zde: http://www.pythontutor.com.
Samozřejmé používání frameworků, tzn. připravených softwarových balíků, znamená rapidní vývoj celých aplikací. Pojem rapidní se chápe jako zrychlený - jsou k dispozici moduly a fragmenty kódu, které se jen skládají dohromady, často vizuálním či automatizovaným způsobem. Frameworky jsou testovány a mají množství kvalit, kterých by jednotlivec v rozumném časovém prostoru nedosáhl. Například jsou připraveny pro používání na displejích různých velikostí (hotové aplikace jsou „responzivní“), jejich kód je komplexní (využívá maxima dostupných vlastností) a validní (tzn. neobsahuje chyby vzhledem ke své specifikaci a gramatice jazyka).
Frameworky lze s úspěchem využít při výuce vybraného programovacího jazyka. Populární je např. Django (Python). Pro PHP existuje obrovské množství frameworků, u nichž je s minimem práce možné ihned vidět výsledky; namátkou:
Technologický rozvoj se projevil také v oblasti podpůrných nástrojů. YouTube nám dalo kromě videí z druhého konce světa také platformu pro vzdělávání. Najdete zde množství návodů, a to nejen anglicky. Ostatně publikování videonávodů může být také velmi efektivním výukovým nástrojem a ve výsledku můžete pomoci kolegům - aby „všechna“ videa nebyla jen anglicky.
Důležitým nástrojem jsou kvalitní editory kódu, IDE (integrated development environment). Existuje jich nepřeberné množství a velké množství z nich je licencováno jako open source. Tedy nemusíte za jejich používání platit licenční poplatky. Obsahují funkce, které usnadňují práci s kódem - např. doplňování kódu, uzavírání závorek, nápověda parametrů, ladění chyb atp.
Ještě bychom mohli hovořit o SEO, uživatelském prožitku, drátěných modelech, vlivu sociálních sítí na vytváření webových stránek a mnoha dalších faktorech, které z „programování webových stránek“ udělaly úplně jinou disciplínu. Tohle všechno už ale patří jinam, třeba do vysokou školu, do bakalářského oboru „webdesigner“.
V první řadě je důležité, aby žáci uměli publikovat obsah a dokázali pracovat s textem a redakčním systémem. Tato dovednost se zčásti překrývá s prací v textovém procesoru. Měli by chápat princip nahrávání dat a odkazování, aby pak nevkládali odkaz ke stažení ve formě C://Dokumenty/soubor.doc. Na první pohled to vše vypadá triviálně a samozřejmě, ale znám realitu trochu jinak.
Pro pokročilejší představy lze doporučit práci s vybraným frameworkem, přičemž je jedno, který to bude, protože frameworky se mění a vyvíjejí. Principy se příliš nemění, záleží spíše na vybraném jazyku (již roky mnozí tvrdí, že PHP je mrtvý) a zodpovědném přístupu – tj. např. stanovení cílů. Jako skvělý doplněk se jeví práce v projektech s využitím vhodného softwaru pro projektové řízení.
Všechny články jsou publikovány pod licencí Creative Commons BY-NC-ND.
Pro vložení komentáře je nutné se nejprve přihlásit.
Tento článek je zařazen do seriálu Opensource.
Ostatní články seriálu:
Článek je zařazen v těchto kolekcích: