[python] python pro studenty

Hynek Fabian hynek.fabian na firma.seznam.cz
Úterý Duben 24 19:18:21 CEST 2012


> Tak z vyberu Python nebo VB je Python asi ta lepsi volba. Ale IMHO
> na vyuku programovani (jen zduraznuju, ze vidim rozdil mezi 
> programovanim a algoritmizaci), neni Python nejlepsi jazyk.
Já by řekl že je to právě naopak – z vysokoúrovňových jazyků je python
mezi nejlepšími. Java je mnohem složitější, visual basic je zanesený
generacemi historických reliktů, php prudce účelové, perl má možná
průhlednou filozofii ale obfuskovanou syntaxi :-) …zapoměl jsem na někoho?
(ruby nepočítám – IMO je to překrásný jazyk, ale tolik nepodobný
ostatním potomkům fortranu že se na výuku nehodí)

> Mozna jsem prilis starosvetsky, ale je potreba vedet, jak veci
> funguji uvnitr, aspon trochu, a na to ma python moc vysokou uroven 
> abstrakce.
IMO všechno v čem se nemusíš starat o alokaci paměti má moc vysokou
úroveň abstrakce. Pascal není nízkoúrovňový, jen tupý. V dnešních
podmínkách bych low-level uvažování ilustroval (zájemcům) spíš v nějakém
jednočipovém asembleru nebo třeba corewars, A programování dělal v
jazyce ve kterém se dá programovat na dnešní úrovni.
A Python má tu krásnou vlastnost že základní kroky – proměnné, cykly,
funkce – nejsou o nic složitější než v pascalu nebo basicu.

> Navic kdyz vezmu jake zmateni dokazou udelat mutable/immutable typy 
> predavane jako parametr funkce... No zlaty Pascal :)
Zrovna třeba problémy s mutable/imutable typy (já bych to nazval rozdíl
mezi kopií objektu a referencí na objekt) jsou překrásná ukázka toho na
co dítka narazí až narazí na ukazatele a reference v C/C++. S tím
rozdílem že interpret poskytuje záchranou síť místo segfaultů.
Podobných věcí by se dalo najít spousta – objekty, iterátory,
funkcionální triky, přenositelnost, síťování, paralelizace,
metaprogramování…
To že děti pascalu (včetně mě) takové vlastnosti automaticky považují za
bůhvíjak pokročilé jen dokazuje jak máme pascalem poškozené mozky :-/

> Ale samozrejme zalezi na tom, co ma byt cil toho predmetu - jestli 
> naucit decka aspon trochu "programatorsky myslet", pak je to Python 
> all the way up. Ale bal bych se nekoho ucit na Pythonu 
> "programovani".
Ja bych se rozhodně nebál. V práci nějaký ten milionek řádků v pythonu
máme, a programujeme bez uvozovek :-) A o lidi které bychom nemuseli
odnaučovat pascalovské/céčkařské/javistické (škrtni co se nehodí)
idiosynkrazie máme veliký zájem.



Další informace o konferenci Python