[python] Guido o funkcich reduce(), filter() a map() v Python 3000

Jan Bednařík jan.bednarik na gmail.com
Pátek Červen 27 15:45:02 CEST 2008


Dne 26. červen 2008 13:44 superman <feed na centrum.cz> napsal(a):
>
>>
>> Python je jazyk, který se používá v rychlostně kritických aplikacích. Né úplně doslova, nejnáročnější komponenty se píší v C případně C++ a Python slouží jako nástavba pro rychlý vývoj s těmito komponentami.
>>
>
>
> Sám to popíráte - Python se nepoužívá v rychlostně kritických
> aplikacích, protože komponenty se pak píší v C, C++ a dalších jazycích
> orientovaných na rychlost. A toto vlákno se týká psaní kódu v Pythonu -
> a rychlost se tu objevila pouze v té souvislosti, že psaní na max.
> rychlost někdy (ale velmi velmi ukrutně zřídka, aby to tu někdo
> nepoužíval jako argument) ospravedlňuje hnusné změny a zásahy. A protože
> v Pythonu se nepíší rychlostně kritické věci (sám jsem napsal, že se
> tyto části napíší třeba v C), nejsou tyto věci ospravedlněním pro špatné
> zásahy pana Rosauma do Pythonu. Abych tak nějak polopaticky shrnul
> několik příspěvků a o co v nich šlo.

Nepomůžou vám skvělé komponenty v C/C++, když s nimi pracujete v
pomalém jazyku jako třeba PHP. V poměru komfort + rychlost vývoje ku
rychlost zpracování jazyka je na tom Python hodně dobře a je to jeho
obrovská konkurenční výhoda.

>> Ale i tak jsou nároky na jeho rychlost obrovské a to že jeho rychlost
>> převážně převyšuje ostatní interpretované jazyky je jeden z hlavních
>> důvodů, proč je Python tak rozšířený. Za zmínku stojí třeba Google,
>> které je postaveno převážně na kombinaci C/C++ a Python, stejně tak
>> Seznam.cz, nebo třeba serverová farma MMORPG hry EVE Online. Rychlost
>> je taky jeden z důvodů, proč se dělají některé změny v Python 3000 a
>> proč nebude donekonečna zachovávána zpětná kompatibilita.
>>
>
> Rychlost Pythonu převyšuje ostatní jazyky :-) Co já se tu nedozvím :-)
> Pravda je opačná, Python je jedním z nejpomalejších. Ale ono to nevadí,
> protože rychlost ve věcech, kde se nasazuje Python není kritická,
> alespoň ne v těch částech, kde se vykonává Python kód. Protože jinak by
> nasazení Pythonu byla špatná volba - skoro cokoli za jiný jazyk je lepší
> pokud jde o rychlost.

Je tam napsáno "interpretované jazyky". Tam má většinou navrch. Je
zásadní rozdíl, jestli bude aplikace napsaná třeba v PHP a bude muset
běžet na čtyřech serverech, nebo bude v Pythonu a bude stačit server
jeden.

> Síla Pythonu je jinde - je to jazyk s ukrutně rychlým vývojem programů.
> Jazyk s udržovatelným kódem, kde bez problémů můžete oprašovat milióny
> řádků a není problém.

S tím souhlasím, ale tímto si protiřečíte, když jinde tvrdíte, že
přechod na Python 3000 (= oprášit pár řádků kódu) by měl být problém.

> A k několika konkrétním příkladům bych dodal - "jedna vlaštovka jaro
> nedělá". Mě nezajímá pár firem, co jí používá, mě zajímá kolik procent
> projektů jí používá. A upřímně velmi doporučuji také po čase udělat si
> graf procent a zhodnotit propad Pythonu v důsledku hrátek pana Rossuma.
> Ten propad už se totiž nevyrovná nikdy v budoucnosti. Nepolemizujte se
> mnou, ale sami si dejte dohromady skutečná data.

Kolik procent projektů používá nějaký jazyk vůbec nic nevypovídá o
kvalitě toho jazyka, viz. např. PHP. Důležité je na jaké projekty ten
jazyk lidé používají.

Jestli to bude propad, nebo naopak vzestup nelze předem odhadnout. Ale
já bych si na propad nevsadil.

> Mimochodem, úspěšně jsem složil test na vývojáře pro Google, takže něco
> vím. Hlavní, co požadují je Java, ocení C++, nějak kolem Pythonu se moc
> nemluvilo. Nakonec problém byl, že nejsem s to komunikovat plynule
> perfektní angličtinou po telefonu.
>
> Ohledně her se záruky nepožadují. Jakpak dlouho se prodává hra? Rok?
> Dva? Určitě se kód hry neudržuje nijak dlouhou dobu oproti jiným
> odvětvím IT. Věřím, že tam Python a Rossum není problém. Znovu říkám,
> jako hračka a pro hraní, stejně tak na jednorázové věci není důvod
> Python nepoužít.

V případě EVE se jedná o roky (6+) probíhajícího vývoje, který jen tak neskončí.

>> Stejně stále nechápu, z čeho máte strach. Python už dnes není jen
>> Guido, ale stojí za ním poměrně velká nadace, sponzoři a vývojáři
>> Pythonu a komunita vývojářů v Pythonu. Guido neupravuje a ani nemůže
>> upravovat Python jen tak podle toho, co ho zrovna napadne. Ani změny
>> ve verzi Python 3000 nejsou jen jeho výmysl. Má sice poměrně velké
>> slovo, ale když by zblbnul, tak se bez něj obejdou. Proto bych se
>> nebál, že se z Pythonu stane nějaký nepoužitelný balast.
>>
>
> He he, tak teď koukám a hledím. Právě teď Rossum dlouhou dobu blbne. Ne
> kdyby zblbnul, on teď dlouhodobě blbne! A nikdo nezasáhne. Kdyby kdokoli
> takhle blbnul v případě komunity třeba Fortranu, C, C++, Javy, Ady, C#,
> a vůbec většiny jazyků, byl by Rossum odstaven coby dup a ještě by všude
> o něm psali jako o pomatencovi. To píšu zcela bez emocí, protože tak by
> to bylo.
>
> Ve světle současných událostí věty jako "proto bych se nebál" považuji
> za utopii.
>
> Miloslav Ponkrác

Tohle je jen otázka úhlu pohledu. Co jsem tak různě pochytil tak
reakce na změny v Pythonu 3000 jsou většinou pozitivní.

Honza


Další informace o konferenci Python