[python] Fwd: Re: Re: učit Python 2.x nebo 3.x
Petr Přikryl
prikryl na atlas.cz
Pondělí Červen 6 15:55:59 CEST 2011
Přeposílám ještě pár poznatků Jiřího Znamenáčka, který
Python momentálně používá při výuce...
Petr
______________________ Původní zpráva: ________________________
> Od: "Jiří Znamenáček"
> Datum: 06.06.2011 11:28
> Předmět: Re: Re: [python] učit Python 2.x nebo 3.x
>
[...]Pár komentářů mám, ale řešení ne :)
> Nečteš náhodou tuhle konferenci? Ptá se tam nějaký člověk,
> jestli na střední škole začít učit Python 3 nebo Python 2.
Zajímavá otázka. S Pythonem 2.7 nemám vůbec žádné zkušenosti, jen
matnou představu z 2.6. Vyjádřil bych se spíš obecně 2.x versus 3.x.
Dva komentáře obecně:
~ Python 3.x je sice zpětně nekompatibilní, ale troufám si tvrdit, že
ke škodě jazyka příliš málo – věcí na opravení (a zbavení se
historického balastu) tam bohužel i tak zbyla spousta :-(
~ Ale přes to všechno je řada 3.x mnohem, hm, logičtější jazyk.
Zvláště rozšíření použití iterátorů a sjednocení všehokoliv (nechci
říkat zrovna syntaxe). Prostě kód v Pythonu 3.x v mnoha ohledech
působí „přirozeněji“.
Z hlediska výuky:
~ Chcete-li studenty seznámit s programováním na dynamicky typovaném
jazyce, je Python asi pořád jedna z lepších (a čitelnějších) voleb. (I
když už léta ztrácím přehled, takže...)
~ Python vám vnutí celkem rozumnou štábní kulturu. Počítejte ale s
tím, že i v jeho dosti pevných mantinelech se najdou lidi, kteří ji
ohnou takovým způsobem, že se nebudete stačit divit :-)
~ I v trojkovém Pythonu je spousta ošklivých věcí, ale pořád méně než
ve dvojkovém.
~ Mimochodem řada 3.x působí zatím skoro celou dobu jako testovací
beta, takže jestli trojkový Python, tak rovnou až 3.2 :-) Ten vzal
zpátky některé podivné změny a vypadá, že se vývoj konečně trochu
ustálil.
Tudíž neslaný-nemastný závěr:
~ Je-li vaším hlavním úkolem zpracovávání textu v jakémkoliv jiném
kódování než ASCII, zapomeňte na Python 2.x a používejte rovnou 3.1+.
(Nebo si aspoň důkladně ověřte, že autor knihovny, kterou zrovna
potřebujete, s Unicodem počítal...)
~ Potřebujete-li spolupráci externích knihoven, důkladně si
nastudujte, zda jsou k dispozici pro Python 3.x. Většinou to nebude
pravda a budete muset použít Python 2.x.
Osobně si pořád (po dvaceti letech :-) myslím, že základy programování
se nejlíp vysvětlují na Karlovi. Logo je pěkné, ale už zbytečně
obsáhlé. A „normální“ jazyky – Python v to počítaje – jsou z tohohle
hlediska už úplně mimo. Popravdě bych byl radikální a kdybych mohl,
tak bych povinně předepsal NEJDŘÍV kurs Haskellu nebo něčeho podobného
funkcionálního, a AŽ POTOM bych nasadil procedurální jazyk.
Jirka
Další informace o konferenci Python