[python] [django-cs] Beating the Averages

Petr Viktorin encukou na gmail.com
Pondělí Listopad 9 23:26:57 CET 2015


Nevím nakolik je tenhle článek aktuální v době kdy startupům spíš než
o algoritmy jde o UI, a kdy lze cokoliv slepit z existujících součástí
mnohem rychleji než jde napsat framework v tom nejlepším jazyce. A co
se týče výroby těch součástí, vyhrávají holt jazyky, které se dají
naučit za odpoledne :)
Nemá cenu dneska porovnávat Lisp třeba s Javou, jako to dělá článek;
pokusím se ale rozepsat proč píšu v Pythonu a ne Lispu.
Student Pythonu začíná u lepení součástí k sobě, ve srozumitelném
zápisu ("jako v matematice"). A postupně, spolu s nabýváním zkušeností
s existujícími, fungujícími řešeními, se pak může učit jak takové
bloky vytvářet. Oproti tomu v Lispu se nejlíp programuje tak, že si
člověk napřed napíše jazyk, ve kterém by bylo vhodné řešit daný
problém, a pak ten problém elegantně vyřeší.
O něčem podobném jsem mluvil na EuroPythonu s Georgesem, který
porovnával Python s Haskellem. V Haskellu se dají tvořit nové
operátory, takže každá knihovna si pak definuje několik operátorů,
jejichž použití je krásně elegantní, ale těžko se o nich třeba něco
vygooglí. V Pythonu napíšeš metodu: zavolat ji je relativně
těžkopádné, ale ze jména mnohem líp poznáš, co dělá. Podobně v Lispu
můžeš udělat cokoliv – ale než to zdokumentuješ a vysvětlíš někomu
jinému než třem nejbližším kolegům, kteří ví jakým způsobem myslíš,
horda Pythonistů tě předežene. Protože Pythonisti myslí všichni
stejně. A to je hlavní výhoda Pythonu proti Lispu: "pythonic" znamená
"jak by to napsal Guido". Je to omezení, které umožňuje spolupráci.
Když ohrnuju nos nad Djangem a říkám že by se to dalo napsat líp,
dělám to s vědomím že *já* bych to líp nenapsal – ani kdybych byl lisp
aikido mástr. Nemůžu soupeřit s obrovskou komunitou která staví na
knihovně, která funguje a dá se použít hned teď.


Ale jinak je Lisp super, a mainstreamové jazyky se mu limitně
přibližují (viz další esej od PG:
http://www.paulgraham.com/diff.html).
Když se naučíš C, budou tvoje Pythoní programy rychlejší, i kdybys pak
C dál nepoužíval.
Když se naučíš Lisp, budou tvoje Pythoní knihovny elegantnější, i
kdybys pak Lisp dál nepoužíval.

Jinak jestli chcete začít s Lispem, já jsem svého času přečetl jedním
dechem "ANSI Common Lisp" od G Steela; dnes už ale bude asi lepší
začít na Clojure.


2015-11-09 14:46 GMT+01:00 Vladimir Macek <macek na sandbox.cz>:
> Ze Paul Graham je genius, o tom asi mnoho z vas presvedcovat nemusim. Cetl
> jsem zrovna Joela a on odkazal urcitym terminem na clanek
>
> http://www.paulgraham.com/avg.html
>
> Nejdriv jsem se klasicky lekl delky. Prirozene, je 21. stoleti. Ale precetl
> jsem ho cely, slovo od slova. Je to neco uzasneho, moudrost, lehkost,
> diplomacie, spousta veci, ktere by se proste daly citovat, odkryti faktu,
> ktere jsem jen tusil. A krome toho mi to udelalo radost.
>
> Pokud se zajimate o programovani ve vyssim smyslu a ten clanek jste
> necetli, nebo jste ho v minulosti jen preletli, prosim vas, 1) udelejte si
> na nej cas v klidu, 2) venujte mu pozornost, 3) pokud vas zaujme, ozvete se
> mi. Chtel bych si o tom promluvit.
>
> Dik,
>


Další informace o konferenci Python