Path: csiph.com!news.mixmin.net!news.unit0.net!news.netfront.net!.POSTED.94.23.32.179!not-for-mail From: =?UTF-8?Q?Honza_Kr=C3=A1l?= Newsgroups: cz.comp.lang.python Subject: Re: [python] Too much freedom? Date: Tue, 3 Jan 2017 15:05:11 +0100 Organization: Netfront http://www.netfront.net/ Lines: 329 Message-ID: References: <1b8680b2-9ad3-a5c5-4b74-59d5356bd8e7@sandbox.cz> <4ee9c1b4-54ad-9c67-1560-7057c2227434@sandbox.cz> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Injection-Info: adenine.netfront.net; posting-host="94.23.32.179"; logging-data="77904"; mail-complaints-to="news@netfront.net" To: Konference PyCZ Received-SPF: pass (Address passes the Sender Policy Framework) SPF=MAILFROM; sender=honza.kral@gmail.com; remoteip=::ffff:209.85.218.43; remotehost=; helo=mail-oi0-f43.google.com; receiver=hugo.zagamma.cz; DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-transfer-encoding; bh=2wzr308dl6ImHUsEsGXuYJIZoU8XmAzeLVy17f4lqv8=; b=BRYG9uVXIZHcinB31c5W72cOSCkSHH1I+I5qzK6RsHBlL4cpGw+BFqTNe4QXSaqOrJ p9q3Kv23cQHETgtAy/Yj0vZLAlaW2kVJD0vixAoWU5b4ahfGaWPGv4kaj0V9NamgKBjw J5OQ0lbY1/baJBctZJW1yk6dv8m6P0XuKKumZVUFOM38oWjVBYkXEhphK0SSGE5njy03 OwhWpuqOhgstIRJ6mMTFadfYXrkktL8ThVNdgykxTvYHVg0mlGw965oEdzWwjJGGttMN trRo7JznmRr0Nlqfn9txktLPpLuK9ttnKbsGXzJ43nii2xss2YILAGUQoqP+mnkniyYf cNEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:content-transfer-encoding; bh=2wzr308dl6ImHUsEsGXuYJIZoU8XmAzeLVy17f4lqv8=; b=sgFhr2Ar0zPLf5q/ZtStZ71900YZXu/rRUDs3rGGRhpJyiIi8aH2f1TRQ8VBvoYN9k etG+/FMuzJvhlWkQ1QNL6zyFN8/FXHvmR2phZF/eV6GT7hmk/qAfSs8Jw2E8lQIPoVg8 UXxN5ymLQIQr9mxQvovOEAv8MuYpnvCyPuwyJdsM6jRlZMCpLusZQDd3QO6pf4XB+0cW p/ZXPxSOmFnhSBtlaO3Gxdj7FdHtATv/ICoayzYDTT0Tlet4oQVV0v0+2vdI5f8PoxMS vBs26wAYiNOh3v+7CTsV8PivrFBXsxY0MwTFvS7gRYPBPe94DbbnM9qBN6v8z0T+6n+6 lZWA== X-Gm-Message-State: AIkVDXKy6Uf0GayN9ZNo/9PwyGIa7DrkEfQcNDMVGUGgDq6ni5E/ch5l7tpknS55fwpE3KeuQndo2NzjRAwaVA== X-Received: by 10.157.40.205 with SMTP id s71mr31974269ota.69.1483452332077; Tue, 03 Jan 2017 06:05:32 -0800 (PST) In-Reply-To: X-BeenThere: python@py.cz X-Mailman-Version: 2.1.20 Precedence: list List-Id: Konference PyCZ List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Xref: csiph.com cz.comp.lang.python:3151 Vezmu to poporade: > Ot=C3=A1zka. Ob=C4=9Btovali byste n=C4=9Bkter=C3=BD z dynamick=C3=BDch ry= s=C5=AF pythonov=C3=A1n=C3=AD v=C3=BDm=C4=9Bnou t=C5=99eba za (hypotetick= =C3=A9) zisky, jako aby mainstreamov=C3=BD interpret > * se v=C5=A1em zrychlil v pr=C5=AFm=C4=9Bru o 15% =C4=8Di o 20%? rozhodne ne, jak uz tu napsalo spoustu lidi jsou lepsi zpusoby jak zrychlit kod v pythonu a vetsina pythoniho kodu neni zavisla na rychlosti jazyka > * se dal kompilovat do efektivn=C3=ADho nativn=C3=ADho k=C3=B3du? opet argument ciste o rychlosti a odpoved je jeste rozhodnejsi ne protoze nativni kod ma limitace ktere jsou jeste silnejsi nez by bylo nutne obetovat pro zrychleni > * umo=C5=BE=C5=88oval v=C3=BDrazn=C4=9B lep=C5=A1=C3=AD podporu automati= ck=C3=A9 statick=C3=A9 kontroly k=C3=B3du? za me opet ne - preferuji tu volnost a s ni spojenou rychlost vyvoje a expresivitu kodu ktery minimalizuje nutnost automaticke staticke kontroly kodu. V situacich, kde je to zadouci je to v pythonu mozne i v soucasnosti externe skrze mypy a anotace a nevidim jediny duvod to zabudovavat do pythonu direktivne misto anotaci. > * ... tohle je pro me ta nejzajimavejsi otazka - hrozne casto se lide bouri proti prilisne dynamicnosti nekterych jazyku a chteji to omezovat nebo argumentuji, ze bez toho "to nejde", neni to vhodne pro velke projekty a nebo to nikdy nebude dost rychle. A core team pythonu to vesele ignoruje, dal zrychluje python a dela podporu tem obrovskym projektum ktere v pythonu vesele existuji. Tak nejak mi tam chybi ten dramaticky duvod k temto diskuzim. je to vetsinou jen filozofovani u piva nad tim jak by nektere veci byly jednodussi kdybychom meli staticke typovani nebo slozene zavorky ktere zcela ignoruji celkovy design toho jazyka a ekosystemu. Prijde mi to jako debata na tema jak by nakladaky byly o mnoho rychlejsi a uspornejsi kdyby nemusely vozit ten otravny naklad. > Nebo si to m=C3=A1m jednozna=C4=8Dn=C4=9B vylo=C5=BEit jako "svobodnou dy= nami=C4=8Dnost jazyka neomezovat, proto=C5=BEe zm=C3=ADn=C4=9Bn=C3=BD hypot= etick=C3=BD zisky ve skute=C4=8Dnosti v=C4=9Bt=C5=A1ina nevyu=C5=BEije nebo= je mo=C5=BEn=C3=A9 jich dos=C3=A1hnout jinak"? Nebo proste tak, ze ten jazyk tak, jak je navrzen, nedava smysl ve sve staticke verzi a nelze polemizovat o jednotlivych featurach jazyka bez kontextu toho k cemu byl zamyslen, jak se pouziva a jak vypada prace s nim. > V=C3=ADte, m=C4=9B se v=C5=BEdy l=C3=ADbila my=C5=A1lenka RISC v obklopen= =C3=AD bloatem CISC. P=C5=99em=C3=BD=C5=A1l=C3=ADm, jestli Python trochu ne= zakop=C3=A1v=C3=A1 o svoj=C3=AD nespoutanost ve chv=C3=ADli, kdy z=C3=A1m= =C4=9Brem je ps=C3=A1t v n=C4=9Bm opravdu velk=C3=BD =3D> konzistentn=C3=AD= a stabiln=C3=AD syst=C3=A9m. V=C3=ADm, =C5=BEe se v n=C4=9Bm (=C3=BAsp=C4=9B=C5=A1n=C4=9B) p=C3=AD=C5=A1ou. Ted je rada na me abych nerozumel - pisou se v nem velke uspesne projekty a presto lide stale tvrdi, ze by se lepe psaly, kdyby byl staticky typovany. Proc? Na zaklade ceho tohle rikas? Empiricky je jasne videt, ze to prekazka neni tak proc se tohle vytahuje stale dokola a proc je to brane jako OK navrhnout nazor ktery je v rozporu s realitou a nepodlozit ho argumenty? > Nemus=C3=ADte m=C4=9B nutn=C4=9B br=C3=A1t doslova, uva=C5=BEuju. Vim, ze to pises z pozice, ze o tom premyslis, ale i tam je potreba se ptat proc - vsichni zname dost velkych projektu v pythonu a mnoho neuspesnych projektu ve statickych jazycich. Evidentne to neni podminka ani nutna, ani dostacujici. Honza Kr=C3=A1l E-Mail: honza.kral@gmail.com Phone: +420 606 678585 2017-01-03 14:42 GMT+01:00 Pavel =C5=98iho=C5=A1ek : > N=C4=9Bco na zp=C5=AFsob statick=C3=A9 kontroly k=C3=B3du u=C5=BE v pytho= nu existuje. > Je to mypy, ve kter=C3=A9m se osobn=C4=9B anga=C5=BEuje Guido. > http://mypy-lang.org/ > http://www.elfsternberg.com/2016/12/04/write-python-mypy/ > > V Pythonu 3 koneckonc=C5=AF objevily typov=C3=A9 anotace, kter=C3=A9 toto= umo=C5=BE=C5=88uj=C3=AD > elegantn=C4=9Bji ne=C5=BE Python 2.7. To =C5=BEe o nich lid=C3=A9 > bu=C4=8F nev=C3=AD, nebo jim nerozum=C3=AD nebo b=C5=AFhv=C3=AD pro=C4=8D= je vlastn=C4=9B nepou=C5=BE=C3=ADvaj=C3=AD, je v=C4=9Bc > jin=C3=A1. Kontrolu k=C3=B3du um=C3=AD i PyCharm. > D=C3=A1le, pokud si p=C5=99e=C4=8Dte=C5=A1 novinky v 3.6, pak se tam cosi= o vylep=C5=A1en=C3=A9 podpo=C5=99e > JIT kompil=C3=A1tor=C5=AF objevuje. > > http://www.infoworld.com/article/3149782/application-development/python-3= 6-is-packed-with-goodness.html > > Mimochodem, Python jako takov=C3=BD je specifikace jazyka, nikoliv jeho > implementace. CPython, kter=C3=BD ty mysl=C3=AD=C5=A1, je referen=C4=8Dn= =C3=AD implementace, nicm=C3=A9n=C4=9B > existuj=C3=AD i jin=C3=A9 jako Jython, PyPy, IronPython, kter=C3=A9 nap= =C5=99=C3=ADklad nemaj=C3=AD GIL a > jsou tu=C5=A1=C3=ADm kompilovan=C3=A9 pro sv=C3=A9 virtu=C3=A1ln=C3=AD st= roje. > > GIL je kapitola sama pro sebe, k t=C3=A9 se nechci vyjad=C5=99ovat. Vid= =C4=9Bl jsem pitom=C4=9B > napsanou funkci, kterou autor demonstroval, =C5=BEe Python neum=C3=AD par= al=C3=A9ln=C3=AD > v=C3=BDpo=C4=8Dty. Doporu=C4=8Duji tento star=C3=BD =C4=8Dl=C3=A1nek: > https://jeffknupp.com/blog/2012/03/31/pythons-hardest-problem/ > > > Co se t=C3=BD=C4=8De rychlosti, tak Python podle Guida nikdy nekladl rych= lost na prvn=C3=AD > m=C3=ADsto. Existuje NumPy, Cython, Numba, kter=C3=A9 toto =C5=99e=C5=A1= =C3=AD, pokud m=C3=A1 =C4=8Dlov=C4=9Bk > takovou pot=C5=99ebu. > https://www.ibm.com/developerworks/community/blogs/jfp/entry/A_Comparison= _Of_C_Julia_Python_Numba_Cython_Scipy_and_BLAS_on_LU_Factorization?lang=3De= n > > ________________________________ > Od: Python za u=C5=BEivatele Vl=C3=A1=C4=8Fa Macek > > Odesl=C3=A1no: 2. ledna 2017 21:01:06 > Komu: Konference PyCZ > P=C5=99edm=C4=9Bt: Re: [python] Too much freedom? > > D=C4=9Bkuju za dosavadn=C3=AD odpov=C4=9Bdi. > > Ur=C4=8Dit=C4=9B jsou zaj=C3=ADmav=C3=BD, ale tak n=C4=9Bjak m=C3=A1m poc= it, =C5=BEe jste se nezdr=C5=BEeli na > podstat=C4=9B ot=C3=A1zky. :-) > > Nebo si to m=C3=A1m jednozna=C4=8Dn=C4=9B vylo=C5=BEit jako "svobodnou dy= nami=C4=8Dnost jazyka > neomezovat, proto=C5=BEe zm=C3=ADn=C4=9Bn=C3=BD hypotetick=C3=BD zisky ve= skute=C4=8Dnosti v=C4=9Bt=C5=A1ina > nevyu=C5=BEije nebo je mo=C5=BEn=C3=A9 jich dos=C3=A1hnout jinak"? > > V=C3=ADte, m=C4=9B se v=C5=BEdy l=C3=ADbila my=C5=A1lenka RISC v obklopen= =C3=AD bloatem CISC. P=C5=99em=C3=BD=C5=A1l=C3=ADm, > jestli Python trochu nezakop=C3=A1v=C3=A1 o svoj=C3=AD nespoutanost ve ch= v=C3=ADli, kdy z=C3=A1m=C4=9Brem > je ps=C3=A1t v n=C4=9Bm opravdu velk=C3=BD =3D> konzistentn=C3=AD a stabi= ln=C3=AD syst=C3=A9m. V=C3=ADm, =C5=BEe se v > n=C4=9Bm (=C3=BAsp=C4=9B=C5=A1n=C4=9B) p=C3=AD=C5=A1ou. > > Python=C3=AD packaging taky vn=C3=ADm=C3=A1m jako n=C4=9Bco, do =C4=8Deho= nechci vstupovat. Bolest. > Napadlo m=C4=9B, jestli jej=C3=AD ko=C5=99eny netkv=C3=AD u=C5=BE t=C5=99= eba u importov=C3=A1n=C3=AD, sys.path, > op=C4=9Bt nespoutan=C3=A9m a tud=C3=AD=C5=BE nejednotn=C3=A9m. > > Nemus=C3=ADte m=C4=9B nutn=C4=9B br=C3=A1t doslova, uva=C5=BEuju. > > V. > > > On 2.1.2017 20:19, Michal Vyskocil wrote: >> Ahoj, >> >> Souhlas=C3=ADm, =C5=BEe gil je v=C4=9Bt=C5=A1=C3=AD probl=C3=A9m. Na ryc= hlost je pypy, voliteln=C3=A9 >> typov=C3=A1n=C3=AD u=C5=BE fanda standardn=C3=AD knihovna. >> >> J=C3=A1 bych za sebe p=C5=99idal lep=C5=A1=C3=AD a jednodu=C5=A1=C5=A1= =C3=AD packaging, ne=C5=BE setup.py, >> setup.cfg, manifest, requirements.txt a v=C5=A1echny ty v=C4=9Bci. >> >> Nev=C3=ADm jak pro ostatn=C3=AD, ale pro m=C4=9B je setuptools =C4=8Dir= =C3=A1 magie. Jak=C3=A9koli >> roz=C5=A1=C3=AD=C5=99eni, t=C5=99eba o py.test, je jenom o hled=C3=A1n= =C3=AD magick=C3=BDch postup=C5=AF na >> internetu. >> >> Michal >> >> Dne 2. 1. 2017 6:18 PM napsal u=C5=BEivatel "Petr Messner" >> >: >> >> Ahoj, >> >> m=C4=9B to v=C5=A1echno zat=C3=ADm =C5=99e=C5=A1=C3=AD Cython :) Kdy= =C5=BE teda pot=C5=99ebuju rychlost. >> >> Zrychlen=C3=AD o 20% (nebo 25% nebo 50%...) - opravdu by to n=C4=9B= =C4=8Demu >> prakticky pomohlo? Jen m=C3=A1lokdo funguje v takov=C3=BDch rozm=C4= =9Brech, aby 20% >> zrychlen=C3=AD Pythonu znamenalo, =C5=BEe se u=C5=A1et=C5=99=C3=AD v= =C5=AFbec n=C4=9Bjak=C3=A9 mno=C5=BEstv=C3=AD >> n=C3=A1klad=C5=AF na hardware. >> >> M=C4=9B by se Python t=C5=99eba v=C3=BDrazn=C4=9B zrychlil odstran= =C4=9Bn=C3=ADm GILu :) >> >> Jako j=C3=A1 =C5=BE=C3=A1dn=C3=A9 zrychlovac=C3=AD snahy nechci shaz= ovat, pokud to jde, tak >> sem s t=C3=ADm :) Jen prost=C4=9B pokud za odpov=C4=9B=C4=8F n=C4=9B= kdo pova=C5=BEuje "zrychlit >> Python", jak=C3=A1 je vlastn=C4=9B ot=C3=A1zka? A nen=C3=AD na n=C3= =AD lep=C5=A1=C3=AD odpov=C4=9B=C4=8F? :) T=C5=99eba >> zm=C4=9Bnit datab=C3=A1zov=C3=A9 sch=C3=A9ma, ke=C5=A1ovat, jinak zp= racov=C3=A1vat data, sn=C3=AD=C5=BEit >> po=C4=8Det I/O operac=C3=AD, pou=C5=BE=C3=ADt n=C4=9Bjakou hustou kn= ihovnu, co vyu=C5=BE=C3=ADv=C3=A1 >> vektorov=C3=A9 instrukce CPU/GPU... Nejsp=C3=AD=C5=A1 existuj=C3=AD = i jin=C3=A9 mo=C5=BEnosti, ne=C5=BE >> dojdete k okam=C5=BEiku "a te=C4=8F u=C5=BE by tomu opravdu pomohla = jen kvantov=C3=A1 JIT >> VM". >> >> Ad statick=C3=A1 kontrola k=C3=B3du - m=C5=AF=C5=BEu za=C4=8D=C3=ADt= t=C3=ADm, =C5=BEe si sem a tam budu >> anotovat, =C5=BEe funkce vrac=C3=AD string, nebo =C5=BEe to n=C4=9Bj= ak=C3=BD n=C3=A1stroj dokonce >> odvod=C3=AD za m=C4=9B... Ale =C4=8D=C3=ADm vic jdu do hloubky, t=C3= =ADm v=C3=ADc si =C5=99=C3=ADk=C3=A1m, =C5=BEe bych >> to teda rad=C4=9Bji d=C4=9Blal rovnou v tom C++ :) Ale to je mo=C5= =BEn=C3=A1 t=C3=ADm, =C5=BEe >> jakmile m=C3=A1m kladivo (C++), tak prost=C4=9B v=C5=A1echno najedno= u vypad=C3=A1 jako >> h=C5=99eb=C3=ADk. I v tom Google si rad=C4=9Bji vymysleli Go, ne=C5= =BE aby ka=C5=BEd=C3=A9ho >> program=C3=A1tora museli zasv=C4=9Bcovat do taj=C5=AF C++. >> >> Jsem zv=C4=9Bdav=C3=BD na dal=C5=A1=C3=AD n=C3=A1zory :) Hodn=C4=9B = zdrav=C3=AD a m=C3=A1lo segfault=C5=AF v nov=C3=A9m >> roce! >> >> PM >> >> Dne 2. ledna 2017 17:12 Vl=C3=A1=C4=8Fa Macek > > napsal(a): >> >> Ahoj v=C5=A1em, hezk=C3=BD nov=C3=BD rok. >> >> Ob=C4=8Das m=C4=9B napadne... >> Python je siln=C4=9B dynamick=C3=BD jazyk, tj. umo=C5=BE=C5=88uj= e velmi svobodn=C3=A9 >> operace s >> objekty, metaprogramov=C3=A1n=C3=AD atp. A=C5=BE tolik, =C5=BEe = to n=C4=9Bkter=C3=BDm lidem >> p=C5=99ijde moc a >> vyv=C3=ADjej=C3=AD aktitivy, jak ho trochu spoutat a n=C4=9Bco z= a to z=C3=ADskat. >> >> Ot=C3=A1zka. Ob=C4=9Btovali byste n=C4=9Bkter=C3=BD z dynamick= =C3=BDch rys=C5=AF pythonov=C3=A1n=C3=AD >> v=C3=BDm=C4=9Bnou >> t=C5=99eba za (hypotetick=C3=A9) zisky, jako aby mainstreamov=C3= =BD interpret >> >> * se v=C5=A1em zrychlil v pr=C5=AFm=C4=9Bru o 15% =C4=8Di o 20= %? >> * se dal kompilovat do efektivn=C3=ADho nativn=C3=ADho k=C3=B3= du? >> * umo=C5=BE=C5=88oval v=C3=BDrazn=C4=9B lep=C5=A1=C3=AD podpor= u automatick=C3=A9 statick=C3=A9 kontroly >> k=C3=B3du? >> * ... >> >> Podot=C3=BDk=C3=A1m, =C5=BEe to jsou podn=C4=9Bty k zamy=C5=A1le= n=C3=AD, nikoli k flamewar. :-) >> >> Pokud m=C3=A1te na=C4=8Dteno a ozkou=C5=A1eno n=C4=9Bco z toho, = co se t=C3=A9matu t=C3=BDk=C3=A1, >> uv=C3=ADt=C3=A1m i, >> pokud se o to pod=C4=9Bl=C3=ADte. Nikdy neza=C5=A1kod=C3=AD si r= oz=C5=A1=C3=AD=C5=99it obzory. >> >> Vl=C3=A1=C4=8Fa >> >> >> _______________________________________________ >> Python mailing list >> python@py.cz >> http://www.py.cz/mailman/listinfo/python >> >> >> Visit: http://www.py.cz >> >> >> >> _______________________________________________ >> Python mailing list >> python@py.cz >> http://www.py.cz/mailman/listinfo/python >> >> >> Visit: http://www.py.cz >> >> >> >> >> _______________________________________________ >> Python mailing list >> python@py.cz >> http://www.py.cz/mailman/listinfo/python >> >> Visit: http://www.py.cz > > > -- > : Vlada Macek : http://macek.sandbox.cz : +420 608 978 164 > : UNIX && Dev || Training : Python, Django : PGP key 97330EBD > > (Disclaimer: The opinions expressed herein are not necessarily those > of my employer, not necessarily mine, and probably not necessary.) > > _______________________________________________ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > > _______________________________________________ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz