[python] python pro studenty

rajcze rajcze na gmail.com
Úterý Duben 24 20:09:23 CEST 2012


No, ja tusil ze to smrdi flejmem (a to jsem pravoverny Pythonista ;D)

2012/4/24 Hynek Fabian <hynek.fabian na firma.seznam.cz>:
>> 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í)

Vsak ja myslim, ze spolu souhlasime, nebo ne?

>> 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.

Jasne, ale co ti da programovani ATMegy pro psani na pocitaci? De
fakto nic, na mikrocipech se naucis, ze musis umet trochu obfuskovat,
aby ti vysly registry a moc ses nezdrzoval sahanim do pameti, a pak uz
je to jen o rizeni periferii... Celkem nuda...

>> 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 :-/

Ukazatel a reference je IMHO zakladni koncept, kterymu je treba
rozumet. Kdybys videl jaky jsem opravoval na vysoke prvakum projekty v
Ccku (jaksi nepochopili smysl reference a dereference, a kdyz
potrebovali predat ukazatel do pole z funkce do funkce tak jim
postupne rostl pocet hvezdicek :D). A tim ze je to nepruhledny jsem
myslel spis to, ze pokud nevis co je predani ukazatelem a co hodnotou,
tak to tezko jde vysvetlit jinak nez "Je fakt, ze list, dict, object
(...) se vam ve funkcni meni, ale retezec, int (...) ne. Deal with
it."

Ja jsem teda taky ditko pascalu, a krom metaprogramovani (v cemkoli
jinym nez v lispu :D) to za pokrocily veci nepovazuju. Jen zastavam
staromilecky nazor, ze je potreba nejen vedet, _ze_ neco jde, ale i
proc to tak je. Pak totiz vznikaji prasarny s exponenicialni
slozitosti, misto logaritmicke, a podobne :)

>> 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.

Jak rikam - zalezi na tom, co si clovek klade za cil. Za milionek
radku pythonu respekt (pokud je to jeden projekt). To mozna ani nechci
vedet co to je zac, mohl bych se vydesit :D Na druhou stranu, kdyz uz
musis nekoho odnaucovat prasarny z pascalu/c/javy, tak vetsinou
vymysli prasarny i v Pythonu.

Ale tu nouzi o schopny lidi sdilim. Jeste ze se Zen of Python da
vysvetlit za odpoledne ;)

J.


-- 
Rules of Optimization:
Rule 1: Don't do it.
Rule 2 (for experts only): Don't do it yet.


Další informace o konferenci Python