Umět programovat = optimálně využívat prostředky, které jsou k dispozici a umět programovat podle zásad, ke kterým programátorská kounita postupně dopěla.
Tyto zásady však ve většině učebnic nenajdete, protože to jsou především učebnice syntaxe jazyka. Potkal jsem např. několik programátorů, kteří byli líní vymýšlet byť jednoduchá modifikační pravidla a místo cyklu používali příkaz copy-paste s tím, že v každém opakování změnili příšlušné parametry ručně. Potkal jsem řadu programátorů, kteří sice používali OOP jazyky, ale jejich programy byly sestaveny z několika málo obludných tříd (někdy také z jediné). Znám řadu (i vysokoškolských) učebnic, jejichž autoři tvrdí, že rozhraní v Javě je náhražkou násobné dědičnosti znáné např. z C++. Informace o tom, že současné programování dává implementaci rozhraní přednost před dědičnost, se k nim ještě nedonesla. Znám programátory, kteří mne přesvědčovali, že místo volání bezparametrické procedury je výhodnější skočit na příslušný kód a pak zase zpět, protože takovýto skok je o něco rychlejší. Znám programátory (mezi nimi i lektory a vysokoškolské učitele), kteří se stále domnívají, že dědičnost slouží především k využití již naprogramovaných funkcí bez ohledu na logiku aplikace. Jsou potom schopni definovat obdélník jako potomka bodu (příklady z učebnice programování a seriálu v SN), cyklistu, který potřebuje přeskákat potok po kamenech, jako potomka žáby (příklad z jednoho školení), letadlo jako potomka dvou křídel (příklad citovaný v jedné učebnici) atd., atd. Nedávno se mi jedna učitelka chlubila pracemi svých žáků, jejichž metody byly dlouhé přes několik obrazovek. Když jsem se jí snažil vysvětlit, že moderní programování je nepřítelem dlouhých metod, cítila se dotčena. Příkladů "jak ne" bych mohl jmenovat mraky. Setkáváme se s nimi především proto, že se v učebnicích jen opravdu zřídka vyskytuje rozumně obsáhlý výklad toho, "jak ano". Vyložit syntaxi dá totiž méně práce a autor si přitom nekoleduje o to, aby se do něj ostatní pustili za to, že "to, co on ano, tak oni ne". -- No virus found in this outgoing message. Checked by AVG Anti-Virus. Version: 7.0.323 / Virus Database: 267.9.2/53 - Release Date: 20.07.05 st
