[python] Guido o funkcich reduce(), filter() a map() v Python 3000
Jarek Krcmar
krcmar1 na volny.cz
Čtvrtek Červen 26 09:06:46 CEST 2008
Zdravím,
Nevím, jestli to bude k tématu, nebo od tématu, ale musím dodat, že Alan
Gauld srovnává jazyky: Java, python.
Na stránce:
http:www.skil.cz/python
najdete učebnici s názvem: Jak se naučit programovat.
V každé lekci je porovnání mezi těmi jazyky.
Jarek
----- Original Message -----
From: "BoneFlute" <boneflute na taco-beru.name>
To: "Konference PyCZ" <python na py.cz>
Sent: Wednesday, June 25, 2008 11:41 PM
Subject: Re: [python] Guido o funkcich reduce(), filter() a map() v Python
3000
superman napsal(a):
>> 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.
C++ je! pokračovatelem C. Přirozeným, nebo nepřirozeným ale je. Že se
Stroustrup nechal inspirovat jinými jazyky je tak nějak jasné. Protože
proto asi C měnil, že nemá objekty, že nemá proudy a tak.
A C++ je zpětně kompatabilní, zvláště u vás mě překvapuje, že tvrdíte
opak. Rozdíl je pouze v tom, že jsou tam občas háčky. Nehledě k tomu,
pakliže by jste byl tak velký hnidopich, on je rozdíl i mezi
jednotlivými verzemi C. Netvrdím že nějak zásadní, ale jsou tam.
>
>
>> 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ů.
Chcete mi trvrdit, že Novell a Migueala tak moc ovlivnil Microsoftí
marketing? No, možné to je. Ale o tomhle jsem hovořil dále.
>
> 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.
Záruky jsou buzzword. Uznávám, že v tomto máte pravdu. Jsou velice
důležité. Problém je v tom, že vám je nikdo nedá. Nebo tedy, alespoň já
jsem se vždycky setkal pouze se sliby. Ale oni se jako záruky dají brát
i nejen slova, ale chování lidí. Což jste také nastínil. Právě třeba u
Guida mohu očekávat záruku, že se mi jazyk nebude parchantit, a případné
nelogičnosti se prostě odstraní. Můžete se na záruku dívat i v tomto.
Představa, že na fungující kód se nehrabe je sice pěkná, ale ve
skutečnosti to je přeci jen jinak.
>
>
>> 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.
Nic nemíchám.
Je to mé tvrzení, tak neprskejte :-)
Cílem Microsoftu bylo najít skulinu v trhu. Hold business. A tak to
vzala hezky od podlahy a vytvořila C#. Na základě Javy, Ady, a dalšího
mraku jazyků jako inspirace.
Pro pochopení mé argumentace: Mezi C a C++ je relativně malý rozdíl,
protože to byla jen naroubovat třídy do procedurálního jazyka.
Naopak, mezi Javou a C# je ten rozdíl už mnohem větší, protože se v něm
promítlo a je zabudováno mnohem více moderních vlastností jazyka.
A podobně, mezi pythonem a pythonem 3000 je podobný rozdíl. Že to jsou
stejné jazyky? Nebo nejsou? To je otázka optiky. Ono lze brát i rozdíl
mezi K&C C a C99 za různé jazyky. (S trochou nadsázky, samozřejmě.)
Vy chcete, aby se jazyk neměnil, někdo jiný chce, aby se s ním dobře
pracovalo. Vývoj.
>
>
>> 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é
Překvapivě, toto jsem chtěl říct :-D
>
> Prosím Vás, zjistěte si alespoň základní fakta, než budete argumentovat.
Ale no tak, bez emocí...
>
>
>> 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.
Tato naivní představa tu nebyla. Vždyť jsem to tam psal: "A to hlavně
díky SUNu a IBM, které na něm založili část své existence."
>
> 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.
Jediná záruka, kterou Java dává, je ta, že se jí SUN nevzdá, a že se jí
nevzdá její obrovská komunita. Tudíž vždycky se ní bude někdo starat.
Jakékoliv hledání jiné záruky je obávám se naivní zase od vás. I když
přístup je to jistě rozumný.
>
>
>> 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í.
Chachá, otázka je, zda to ten profesionál opravdu udělá desetkrát lépe.
Řeknu vám, co udělám. Najmu si partu cigánů. Ne pro jejich barvu kůže,
ale protože oni rozumí svému řemeslu (mluvím teď o konkrétní partě). A
vím, že oni mi postaví barák, který bude stát za to.
Když si postavím barák od "profesionální" firmy, přijde za mnou
kravaťák, a řekne, ano ano, tohle tohle, tady máme tabulku. Bude to stát
tolik. A postaví mi barák za dva měsíce. Jenže ten cigán z předchozí
party by mi řekl, že je to blbost, protože jen měsíc tvrdne lepidlo na
cihlách... Řekne mi to, protože nechce dělat nekvalitní práci. Zatímco
kravaťák chce vydělat peníze.
To jsou ty záruky a to je můj pohled.
Ale je pravda, že jsem to trochu přetáhl. Nikdy není nic tak černobílé,
jak se to tu snažíme oba naznačovat.
--
BF
_______________________________________________
Python mailing list
Python na py.cz
http://www.py.cz/mailman/listinfo/python
Další informace o konferenci Python