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

superman feed na centrum.cz
Středa Červen 25 18:11:56 CEST 2008


> Měl bych tu přirovnání: C a C++. Ačkoliv C++ je zpětně kompatabilní, 
> není zcela. Některé Cčkovské konstrukce v C++ použít nemůžete.
>   

C a C++ jsou dva různé programovací jazyky. Nechápu, proč srovnáváte 
kompatibilitu mezi nimi. Srovnává snad někdo kompatiblitu Javy a Pythonu 
třeba? Nesrovnává! Nikdo nikdy netvrdil, ani se nepokoušel tvrdit, že 
mezi jazyky C a C++ je zpětná kompatiblita.


> Jiný příklad je Java. Ta si udržuje silnou zpětnou kompatabilitu. A 
> proto, když přišel C# - což není nic jiného, než překopaná java - tak 
> získal velice rychle své místo na trhu protože se odvážil přinést nové 
> prvky a nové technologie, které v Javě nejsou, nebo jsou špatně. (Tím 
> netvrdím, že je C# nějak zvlášť úžasný. Ale je to krok kupředu.)
>   

Dovolím si s Vámi úplně, ale zcela nesouhlasit. C# prosadil marketing, 
nikoli nové prvky, ani technologie. Zkuste si Vy konkrétně vymyslet 
nejlepší programovací jazyk na světě a zkuste ho Vy prosadit! Uvidíte 
sám a přestanete být naivní v tom, že si přestanete myslete, že kvalita 
nějak zvlášť rozhoduje o prosazení jazyků.

To už miliónkrát více, než kvalita technologie rozhodují záruky, které 
za ní dáte. A zde je obrovská slabina Pythonu, jak o tom píšu celé toto 
vlákno.


> Python zvolil cestu mezi. Odvážil se k radikálnějším zásahům do jazyka, 
> oproti příkladu s C x C++, kde ty nekompatabilní změny jsou opravdu 
> výjimečné. Ale nevytvořil úplně nový jazyk, jako Java x C# a tím si 
> uchoval uživatelskou základnu. V případě pythonu se jedná o zdokonalení 
> jazyka.
>   

Mácháte hrušky s jablky. Dáváte do protikladu jazyky, které spolu 
vývojově tak moc společného nemají. Cílem Microsoftu a jazyka C# nebylo 
pokračovat v Javě, ani zdokonalit Javu - přestože to tu uvádíte. Stejně 
tak ani C++ nemělo za cíl být další verzí jazyka C. To už pan Stroustrup 
daleko spíše chtěl být klonem Simuly s C like syntaxí.

Nerozumím Vaší argumentaci, protože tu mícháte nesouvisející jazyky - 
zatímco pak do toho vrazíte Python versus zase Python.


> Jako příklad proti, mohu uvést Objektive C. Ten nedělal žádné změny ve 
> jazykové syntaxi původního C, a přesto se v drtivé většině používá jen díky Applu.

A co tím chcete říct? Slyšel jste někdy o licenčních omezeních, které 
dává Apple na své výmysly? Apple spolehlivě licenčně a požadovanými 
poplatky například zabil Firewire technologii, a tak se rozšířila horší, 
ale licenčně přijatelnější USB.

Stejně tak u Objective C jsou obrovské právní a licenční problémy na 
jeho standardní knihovnu, které Apple nehodlá uvolnit. Stejně tak 
Objective C nedává stejně jako Python žádné záruky dobudoucna - je 
hračkou v rukou Apple, co v něm bude příště.

Prosím Vás, zjistěte si alespoň základní fakta, než budete argumentovat.


>  Již zmíněná Java měla nadčasový návrh. A zřejmě dodnes z 
> toho těží. Ale skutečnost je taková, že navzdory kritice, někdy ústící 
> až v šťavnaté nadávky, drží se. A to hlavně díky SUNu a IBM, které na 
> něm založili část své existence.
>   

Ano, Java měla nadčasový návrh - jako primitivní jazyk pro mikrovlnky, 
ledničky a trouby. To je totiž původní záměr Javy a s tímto byl dělán. 
Java těží zase z toho - a znovu se k tomu dostávám - že do ní Sun nalil 
prašule, a obrovské prašule. Je to sice přízemní, ale nebýt dolarů, tak 
Java je dnes historie. To jsou miliardy peněz od Sunu a IBM, které tekly 
zejména do marketinku a propagace a prosazování Javy plus samozřejmě 
technických věcí. Opusťte už tu naivní představu, že kvalita jazyka něco 
znamená v používanosti.

Ale velkým pomocníkem v prosazení Javy z hlediska Sunu byly záruky, 
které Java dává - toje velmi silná věc, daleko silnější, než kvalita - 
zase jsem se dostal znovu k potvrzení toho, že jazyky, které dávají 
záruky (tedy opak toho co dělá Rossum a Python) jsou stálice.


> To zajisté ne. Ale najmu si právníka, který právničinnou žije. Najmu si 
> zedníka, který dělá svou práci rád a je pro ni zapálen. Raději, než 
> profesionála, který to dělá jen pro peníze.
>   

A opravdu si najmete raději zedníka, který tím žije, když za stejnou 
cenu budete moci mít profesionála, který tu práci odvede desetkát lépe? 
Komu dáte šanci? A pokud budete s v soudním sporu, kde Vám půjde o hodně 
- znovu se ptám - najměte si raději právníka, který tím žije, nebo 
profesionála za peníze, u kterého budete mít 3x větší šanci vyhrát spor? 
Mě jenom zajímá až kam daleko jde Vaše přesvědčení.


Miloslav Ponkrác


Další informace o konferenci Python