[python] Guido o funkcich reduce(), filter() a map() v Python 3000
superman
feed na centrum.cz
Úterý Červenec 1 01:57:34 CEST 2008
> Stále mě nabádáte, abych si našel nějaká fakta. Taky byste to měl
> někdy zkusit. Ale souhlasím s tím, že by Python mohl běžet ještě
> rychleji, což dokazuje třeba Psyco.
>
Já to zkusil, právě proto píšu to co píšu. Navíc pomalost Pythonu je
logická už z principu jazyka a z principu runtime. Nicméně pomalost
neznamená vadu, je to daň za jiné pěkné vlastnosti, za které se platí
rychlostí. A pak také daň za neustálé překopávání jazyka - to je další
negativní důsledek Rossumových akcí - kdyby Python byl stálý, věřím, že
by někomu stálo za to vyvinout dobrý runtime pro Python spolu s
dynamickou optimalizací (které v Pythonu není) a možná i JITem (která je
nesplnitelným snem).
Taková Java například to z velké pomalosti dotáhla na to, že v rychlosti
čistého kódu se blíží rychlosti jazyka C. Je to důsledek vývoje runtimu,
který trval mnoho let.
Ale Python prostě musí mít špatný a pomalý runtime, protože při
neustálém překopávání jazyka nelze naprogramovat nic složitějšího, než v
podstatě primitivní runtime prakticky bez optimalizací. Lidé pořád
zapomínají, že změna v jazyce znamená změny v obrovském množství kódu a
nástrojů.
> U hotové aplikace není důvod ani potřeba nic přepisovat. Nevím, jakou
> máte představu o tom, jak přejít na Python 3000, ale nikdo netvrdí, že
> musíte ze dne na den přejít z Pythonu 2.5 na Python 3000 (klidně
> můžete zůstat na Pythonu 2.5 až do smrti, přítomnost Pythonu 3000 ho
> nezruší). U většiny aplikací, u kterých probíhá vývoj, při plynulém
> přechodu na Python 2.6 a pak na Python 3000 s využitím připravených
> nástrojů, žádné extra náklady navíc nevzniknou.
>
Jednou Vás to donutí přejít - pokud jste trochu zběhlý v praxi, tak se
prostě nedá časem nepřejít. Jednoho dne se objeví něco - nepodpora
něčeho v okolí programu, která je jenom v nové verzi a přejít prostě
musíte chca nechca. Proč nutně musí u aplikací probíhat vývoj? A to s
těmi žádnými extra náklady je dobrá věta - na prvního Apríla.
Ono totiž i když probéhá vývoj, tak v aplikaci jsou obrovské části kódu,
na které se nesahá. To může být klidně i 90% kódu, které zůstávají beze
změny. Mění se jen část projektu. Ty nezměněné části jsou odladěné, a je
na ně spolehnutí. Ovšem při změně syntaxe jazyka musíte sáhnout na vše -
na 100% kódu. Minimálně je otestovat - a jestli to neznamená dodatečné
náklady navíc, pak jsem čínský papež.
> Takže je těch vlivů tolik, že stejně nelze určit, proč je Python někdy
> populární více a jindy méně.
>
S tím nesouhlasím. Je rozdíl mezi tvrzením "je tam hodně vlivů" a
tvrzení "nelze určit, které vlivy to jsou". Vy jste dost nekorektně bez
důkazu tato dvě tvrzení zaměnil.
> I v případě Hitlera byla drtivá většina lidí, kterých se jeho činy
> dotýkaly, proti. V demokratické společnosti platí názor většiny, a
> pokud je většina pro změny, nic s tím nezmůžete. Je to blbej systém,
> ale ty ostatní jsou jenom horší.
>
Ano? Zkuste si vzít obrovský prostor zvaný Německo a zkuste si zjistit
jak moc lidí bylo proti.
Demokracii sem netahejte - navíc znovu - dokažte tvrzení "že všechny
ostatní systémy jsou horší, než demokracie" - měl byste logický problém.
Miloslav Ponkrác
Další informace o konferenci Python