Python - zbožňovaný lidmi?

webař

Re:Python - zbožňovaný lidmi?
« Odpověď #180 kdy: 10. 12. 2017, 20:37:33 »
Hlavně je dynamicky typovaný, tak na seriózní použití k ničemu. Ale na hraní a webíky je to fajn. Jinak mi přijde čitelný, ale to mu moc nepomůže.


Ivan Nový

Re:Python - zbožňovaný lidmi?
« Odpověď #181 kdy: 10. 12. 2017, 20:45:32 »
Spoléhat na odsazení, tedy postavit funkčnost jazyka na designu (odsazení) je podle mě s prominutím prasárna. Je to jako postavit funkčnost na základě barevného schématu.

Váš názor chápu, protože jsem měl svého času podobný a pak jsem jej změnil, protože odsazování při programování (ač jsem si to původně myslel) ničemu nevadí a kód to opravdu zpřehledňuje. Uvědomil jsem si, že to co mi na tom vadilo byl jen zvyk z Céčka ap.

No v Pythonu píšete právě jen to, co vnímáte v Cčku, závorky mozek vypouští, zůstává jen informace o blocích, a to se mi na něm právě líbí.Dřív jsem míval strach, že posunutím celého bloku na jinou úroveň odsazení může znamenat chybu, která se bude těžce hledat, ale za roky programování v Pythonu se mi to stalo snad jen jednou.

Programovat bez odsazování? To si zase nedovedu představit já. Odsazoval jsem i ve Fortranu.

gll

Re:Python - zbožňovaný lidmi?
« Odpověď #182 kdy: 10. 12. 2017, 20:59:32 »
Hlavně je dynamicky typovaný, tak na seriózní použití k ničemu. Ale na hraní a webíky je to fajn. Jinak mi přijde čitelný, ale to mu moc nepomůže.

Typování použít můžete, ale nemusíte. Mypy už funguje docela dobře.

webař

Re:Python - zbožňovaný lidmi?
« Odpověď #183 kdy: 10. 12. 2017, 21:03:03 »
Hlavně je dynamicky typovaný, tak na seriózní použití k ničemu. Ale na hraní a webíky je to fajn. Jinak mi přijde čitelný, ale to mu moc nepomůže.

Typování použít můžete, ale nemusíte. Mypy už funguje docela dobře.

A proč bych ho nepoužil? Není žádný důvod nevědět, co v kódu mám za typy. A už má i rozhraní a abstraktní třídy? Totiž dodnes nechápu, jak v něm někdo něco většího dělá, když půlku věcí to nemá. Jsme přece dospělí, tak to není třeba :D

gll

Re:Python - zbožňovaný lidmi?
« Odpověď #184 kdy: 10. 12. 2017, 21:04:11 »
Jediný problém s odsazováním, na který jsem narazil, bylo pasteování do ipythonu, než jsem objevil příkaz %paste. V editoru s tím nikdy nebyl problém.


c++man

Re:Python - zbožňovaný lidmi?
« Odpověď #185 kdy: 10. 12. 2017, 21:14:18 »
Mě Python přestal bavit před několika lety, kdy jsem v něm programoval na fulltime (Django). Souvisí to taky s nástupem Node.js a všech těch Angulárů a Reactů. Prostě s Djangem jsme přestávali stačit, ujížděl nám vlak.

Než naskakovat do rozjetého JS vlaku, úplně jsem opustil weby a vrhnul se do C++. Šablony, smart pointry a všechny tyhle vychytávky, tam je stále co objevovat. U Pythonu jsem měl již vše objevené.

Suma sumárum, Python je fajn, ale časem se omrzí.

balki

Re:Python - zbožňovaný lidmi?
« Odpověď #186 kdy: 10. 12. 2017, 21:37:42 »
Python je basic 21. storocia, tak sa aj pouziva. Na viac nema, lebo je vdaka pouzivatelskej privetivosti  gramblavy na zlozitejsie projekty a je pomaly.  S tym som sa naucil zit, kriticke casti sa daju prepisat do c-cka. Standardna kniznica by mohla byt v pythone krapatek vacsia.

Co vám přesně chybí ve standartní knihovně? Podle mě Python vůbec neznáte.

Co sa tyka problemov, ktore som zaznamenal, je slaba podpora spracovania xml a chybali mi thread safe kolekcie. Vseobecne, slaba podpora multithreadingu. Svoje dojmy, "co neznam" si nechajte pre staru blazkovu prosim.

Re:Python - zbožňovaný lidmi?
« Odpověď #187 kdy: 10. 12. 2017, 21:43:36 »
Hlavně je dynamicky typovaný, tak na seriózní použití k ničemu. Ale na hraní a webíky je to fajn. Jinak mi přijde čitelný, ale to mu moc nepomůže.

To je nesmysl protoze asi nemas moc poneti co se deje, naopak python v kombinaci s high peformance libs v c/c++ je zakladem mnoha AI frameworku, viz napr. flagship Googlu TensorFlow.

Dalsi nesmysl je dynamicky typovany...to je samozrejme option 1, option 2 je staticky typovany.

gll

Re:Python - zbožňovaný lidmi?
« Odpověď #188 kdy: 10. 12. 2017, 22:13:47 »
Co sa tyka problemov, ktore som zaznamenal, je slaba podpora spracovania xml a chybali mi thread safe kolekcie. Vseobecne, slaba podpora multithreadingu. Svoje dojmy, "co neznam" si nechajte pre staru blazkovu prosim.

doporučený způsob komunikace mezi vlákny je pomocí front, které jsou thread safe. Můžete potom snadno nahradit vlákna procesy. I ostatní standardní kolekce jsou AFAIK threadsafe.

Nejbezpečnější je nahradit vlákna koroutinami a blokující volání obalit run_in_executor.

balki

Re:Python - zbožňovaný lidmi?
« Odpověď #189 kdy: 10. 12. 2017, 23:14:05 »
Co sa tyka problemov, ktore som zaznamenal, je slaba podpora spracovania xml a chybali mi thread safe kolekcie. Vseobecne, slaba podpora multithreadingu. Svoje dojmy, "co neznam" si nechajte pre staru blazkovu prosim.

doporučený způsob komunikace mezi vlákny je pomocí front, které jsou thread safe. Můžete potom snadno nahradit vlákna procesy. I ostatní standardní kolekce jsou AFAIK threadsafe.

Nejbezpečnější je nahradit vlákna koroutinami a blokující volání obalit run_in_executor.

Nie su "ostatni kolekce" thread safe, to len cpython nezvlada paralelizmus :(

y,

Re:Python - zbožňovaný lidmi?
« Odpověď #190 kdy: 11. 12. 2017, 05:24:48 »
Hlavně je dynamicky typovaný, tak na seriózní použití k ničemu. Ale na hraní a webíky je to fajn. Jinak mi přijde čitelný, ale to mu moc nepomůže.

To je nesmysl protoze asi nemas moc poneti co se deje, naopak python v kombinaci s high peformance libs v c/c++ je zakladem mnoha AI frameworku, viz napr. flagship Googlu TensorFlow.

Dalsi nesmysl je dynamicky typovany...to je samozrejme option 1, option 2 je staticky typovany.
Souhlasi. Pikantni je, ze numpy/scipy a dalsi bindingy jsou na takove urovni, ze perl ani dalsi jazyky nesahaji pythonu ani nad podrazku barefoot botek. V oblasti kombinace ML a scientific computation je to v zasade golden standard (a ne, R ani Matlab vam neuznam, prave proto, ze rikam "kombinace ML a SC").
Osobne asi nikdy neodpustim vyvojarum schizma python2 a python3, ale to uz je jen muj soukromy boj. Nehlede na to, ze   na tom maji lvi podil i distribuce -- navzdory PEP maji nektere linkovane python na python2 a nektere na python3 (ArchLinuxi, ja te vidim!).

gll

Re:Python - zbožňovaný lidmi?
« Odpověď #191 kdy: 11. 12. 2017, 06:33:47 »
Nie su "ostatni kolekce" thread safe, to len cpython nezvlada paralelizmus :(

Python běží v jednom systémovém vlákně, ale to neznamená, že jsou operace s kolekcemi automaticky atomické. Queue používá threading.Condition.

https://github.com/python/cpython/blob/2.7/Lib/Queue.py

Volání funkcí implementovaných v C je defaultně atomické. Proto i standardní kolekce by měly být thread safe.

Kolekce z knhovny collections thread safe nejsou.

gll

Re:Python - zbožňovaný lidmi?
« Odpověď #192 kdy: 11. 12. 2017, 08:10:06 »
je slaba podpora spracovania xml

co konkrétně chybí?

PetrN

Re:Python - zbožňovaný lidmi?
« Odpověď #193 kdy: 11. 12. 2017, 09:13:05 »
Citace
Programovat bez odsazování?
Aby nedošlo k nedorozumění, já nemám nic proti odsazování, já samozřejmě odsazuji, vadí mi, že u Pythonu se spoléhá jen na odsazení. Asi opravdu záleží na každém, ale já mám v mozku zakořeněno, že bloky jsou rozdělené závorkami, nevím jak to vysvětlit, ale je to jako čtení Matrixu (i když to může být pro někoho úsměvné), prostě podívate se na kód a díky závorkám máte hned přehled, co kde začíná a končí. Vyznat se v nějaké smyčce v Pythonu, kde je více podsmyček, více podmínek, vyskakování pomocí breaků - to je peklo pro oči. :-( Když jsem viděl Python poprvé, hned jsem hledal, jak používat závorky, atd. No a samozřejmě jsem se dostal na diskuze, kde toto byl hlavní diskutovaný problém a kde jej lidí přirovnávali ke komprimovanému javascriptu. To už raději překousnu "ukecanost" u jiných jazyků, než číst Python.

dustin

Re:Python - zbožňovaný lidmi?
« Odpověď #194 kdy: 11. 12. 2017, 10:03:26 »
Vyznat se v nějaké smyčce v Pythonu, kde je více podsmyček, více podmínek, vyskakování pomocí breaků - to je peklo pro oči. :-(

Souhlas, od toho je potřeba takové špagety rozdělovat do krátkých vhodně pojmenovaných metod. Obvykle není důvod míchat různé úrovně abstrakce do jedné metody.

Ale je mi jasné, že s cizím kódem nic neuděláš...

Odsazování mi u pythonu až tak nevadí. Je pravda, že někdy při kopírování do vimu dochází k přidávání mezer na novém řádku a to pythonní kód zlikviduje. Narozdíl od bloků vymezených závorkami, kde informace zůstala zachována a  stačí zavolat automatické přeformátování.

Mně na pythonu zásadně vadí chybějící typy parametrů metod. Čtení cizího kódu je silně nepřehledné, protože nikdy nevím, co do metody vstupuje za typy, zda metoda něco vrací, jaký datový typ. V pythonu 2 je peklo s textovými typy - vyleze z knihovny bytes, string nebo unicode? Z os funkcí leze bytes, z xml funkcí rovnou unicode string, z něčeho neunicode string. Dokud si to člověk nespustí (třeba v testu, to je jedno), neví, jak to dopadne. Musí zkoušet různé řetězce, zda mu to nepadne na unicode znaku. A konverze z python2 do 3 není právě z těchto důvodů nijak jednoduchá, i když jsou na to nástroje. Do googlu musí člověk vždy zadávat, který python má na mysli, rozsáhlých projektů jen pro python2 je pořád spoustu a žijí dál (pro mě např. https://github.com/mopidy/mopidy ).

Typehinty v projektech skoro nikdo nepoužívá (ani v nových pro python3), stačí se podívat na github...

Zrovna včera jsem v PyCharmu řešil přejmenování fieldu třídy - v půlce výskytů to dal, druhou půlku nenašel, protože byl ve starším kódu, který ještě nepoužíval type hinty. A vůbec se mu nedivím, to by musel být kouzelník. Takhle pro mě nevypadá příjemné programování...

Python má krásné konstrukce, je příjemně stručný, jednoduché/jednorázové věci jsou v něm rychle hotové (asi proto se tolik používá pro prototyping a výzkum), ale chybějící uvedené typy a schizma mezi verzemi mu u mě hodně škodí. Ve svém kódu důsledně používám typehinty, abstraktní třídy (abc), generika (Generic), ale python ve svých domácích projektech používám kvůli dostupnosti knihoven pro vše možné a tam je to vždy otravný pokus/omyl.