Python - zbožňovaný lidmi?

mikrom

Re:Python - zbožňovaný lidmi?
« Odpověď #240 kdy: 12. 12. 2017, 12:03:07 »
Mimíchodem, kdyby sis https://www.python.org/dev/peps/pep-0008/ precetl, vedel bys o parametrech -t a -tt a take bys vedel, ze python3 uz kombinaci mezer a tabu nedovoluje vubec.
Diky za upozornenie. Budem pouzivat command line option
-t     : issue warnings about inconsistent tab usage (-tt: issue errors)

A este otazka. nedaju sa kontroly zapnut aj vo vnutri kodu akoby importovanim nejakeho modulu  ?
napr. v perle zvyknem pouzivat pragmy: strict a warnings, asi takto:
Kód: [Vybrat]
#!/usr/bin/perl
use strict;
use warnings;
...
Je mozne nieco podobne aj v Pythone ?


Hilderbert

Re:Python - zbožňovaný lidmi?
« Odpověď #241 kdy: 12. 12. 2017, 12:35:19 »
Mimíchodem, kdyby sis https://www.python.org/dev/peps/pep-0008/ precetl, vedel bys o parametrech -t a -tt a take bys vedel, ze python3 uz kombinaci mezer a tabu nedovoluje vubec.
Diky za upozornenie. Budem pouzivat command line option
-t     : issue warnings about inconsistent tab usage (-tt: issue errors)

A este otazka. nedaju sa kontroly zapnut aj vo vnutri kodu akoby importovanim nejakeho modulu  ?
napr. v perle zvyknem pouzivat pragmy: strict a warnings, asi takto:
Kód: [Vybrat]
#!/usr/bin/perl
use strict;
use warnings;
...
Je mozne nieco podobne aj v Pythone ?

Přímo v jazyku ne, ale už několikrát zmiňovaný pylint slouží ke kontrole kódu.

gll

Re:Python - zbožňovaný lidmi?
« Odpověď #242 kdy: 12. 12. 2017, 12:41:38 »
Mimíchodem, kdyby sis https://www.python.org/dev/peps/pep-0008/ precetl, vedel bys o parametrech -t a -tt a take bys vedel, ze python3 uz kombinaci mezer a tabu nedovoluje vubec.
Diky za upozornenie. Budem pouzivat command line option
-t     : issue warnings about inconsistent tab usage (-tt: issue errors)

A este otazka. nedaju sa kontroly zapnut aj vo vnutri kodu akoby importovanim nejakeho modulu  ?
napr. v perle zvyknem pouzivat pragmy: strict a warnings, asi takto:
Kód: [Vybrat]
#!/usr/bin/perl
use strict;
use warnings;
...
Je mozne nieco podobne aj v Pythone ?

lepší editory nebo IDE vám to označí jako chybu.

PetrN

Re:Python - zbožňovaný lidmi?
« Odpověď #243 kdy: 12. 12. 2017, 14:13:11 »
Citace
začátek bloku je :, konec je řádek s menší úrovní odsazení. Nikomu jinému to nedělá problém.

Myslel jsem si, že jsme na diskuzním fóru Root.cz ne na Novinky.cz?

Já v Pythonu napsal pouze krátký program na zálohování, když už se stával robustnějším, přepsal jsem si ho v jiném jazyce, protože jsem prostě ztrácel přehlednost. Zajímalo mě, jestli se jenom mě zdá, že je Python nečitelný a tak jsem navšívil pár diskuzních fór, z těch jsem zjistil, že rozhodně nejsem sám.

Každpoádně spíš jde o to, že každému vyhovuje něco jiného, proto se najde hodně zastánců, ale také odpůrců. Já bych rád uvítal něco stručného, co není zase tak ukecané, ale také bych rád za to, aby mě nelimitovaly nesmysly, co se týče formátování. Pokud je Python určen na nějaký rychlý a jednoduchý skript, proč mám kontrolovat, jestli zrovna v daném editoru (a že jich na různých místech používám) je správně nastaven tabulátor (4 nebo 5 mezer) a to dokonce tam, kde nemám možnost toto měnit.

Závorky jsou pro mě důležité: (2 + 5) * 3 není 2 + 5 * 3 a stejně tak to mám s bloky a {} ... } jasně určuje konec bloku, bez toho aniž bych musel trápit mé oči neviditelnými znaky. A je mi jedno, jestli napíšu:

Kód: [Vybrat]
if (a == b) {
  ...
}
nebo
Kód: [Vybrat]
if (a == b) { ... }
Tím ale samozřejmě neříkám, že pro někoho je prostě Python přehledný, pro mě prostě není. A protože se zde v diskuzi opět objevili argumenty obhajující odsazení, po třetí píšu: Nemám nic proti odsazení, také odsazuji ve všech jazycích, které používám, mě ale vadí "jen odsazování".

gll

Re:Python - zbožňovaný lidmi?
« Odpověď #244 kdy: 12. 12. 2017, 14:40:48 »
Citace
začátek bloku je :, konec je řádek s menší úrovní odsazení. Nikomu jinému to nedělá problém.

Myslel jsem si, že jsme na diskuzním fóru Root.cz ne na Novinky.cz?

Právě proto. Technik se takovou věc naučí i kdyby se mu nelíbila.


Hilderbert

Re:Python - zbožňovaný lidmi?
« Odpověď #245 kdy: 12. 12. 2017, 15:08:17 »
Citace
začátek bloku je :, konec je řádek s menší úrovní odsazení. Nikomu jinému to nedělá problém.

Myslel jsem si, že jsme na diskuzním fóru Root.cz ne na Novinky.cz?
To jsme, dostalo se vám věcné a správné odpovědi.

Já v Pythonu napsal pouze krátký program na zálohování,
Ano, to je docelá vidět, že s ním máte minimální zkušenosti. Já jsem v pythonu napsal desítky tisíc řádků kódu. Kdyby bylo odsazování objektivní problém, věděl bych o tom.

Zajímalo mě, jestli se jenom mě zdá, že je Python nečitelný a tak jsem navšívil pár diskuzních fór, z těch jsem zjistil, že rozhodně nejsem sám.
Zdát se to může i někomu jinému. Ale ve skutečnosti je návržen právě s ohledem na přehlednost, aby nebyl plný podivných znaků. To, že někomu přijde přehlednější změť znaků není přirozené, je to něco jako nemoc z povolání. Připomeňme si:

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

Já bych rád uvítal něco stručného, co není zase tak ukecané, ale také bych rád za to, aby mě nelimitovaly nesmysly, co se týče formátování.
Python je promyšlený komunitní projekt a žádné nesmysly vás nelimitují, limituje vás vaše předpojatost.

Pokud je Python určen na nějaký rychlý a jednoduchý skript, proč mám kontrolovat, jestli zrovna v daném editoru (a že jich na různých místech používám) je správně nastaven tabulátor (4 nebo 5 mezer) a to dokonce tam, kde nemám možnost toto měnit.
Python je flexibilní a vhodný i ná větší projekty. U krátkého skriptu můžete jednoduše používat mezerník. Ostatně python nikomu nebrání používat 5 mezer a matlal si je používat může. Ale style guide hovoří jásně, odsazuje se 4 mezerami, to je standard. Co ovšem matlal už nemůže je prasit kód a odsazovat v rámci bloku nejednotně.

Závorky jsou pro mě důležité: (2 + 5) * 3 není 2 + 5 * 3 a stejně tak to mám s bloky a {} ... } jasně určuje konec bloku, bez toho aniž bych musel trápit mé oči neviditelnými znaky.
Proč jste nenapsal 2 + (5 * 3) když jsou pro vás závorky důležité? Evidentně to není pravda. Trápení očí je nesmysl, odsazování je přirozeně přehledné strukturování kódu, dělají to všichni aniž by museli. Je to jediné přehledné řešení pro člověka. Závorky jsou pro stroj. Python se přizpůsobuje člověku a respektuje jeho způsob. Nenutí člověka do dublovaného redundantního strukturování.

Ale když budu hrát vaši hru, a dělat, že vám to věřím, tak python nikomu nebrání si v kodu dělat vlastní závorky. Akorát to nikdo nikdy nepoužil, co vím, což myslím jasně vypovídá o tom, že to je k ničemu na rozdíl od odsazování, které naopak dodržuje každý i v případech, že je to nepovinné. A to pro zvýšení přehlednosti. Máte racionální vysvětlení, proč si lidé obdobně kód v pythonu nezpřehledňují nepovinnými závorkami?

Inkvizitor

Re:Python - zbožňovaný lidmi?
« Odpověď #246 kdy: 12. 12. 2017, 17:24:22 »
Ale když budu hrát vaši hru, a dělat, že vám to věřím, tak python nikomu nebrání si v kodu dělat vlastní závorky. Akorát to nikdo nikdy nepoužil, co vím, což myslím jasně vypovídá o tom, že to je k ničemu na rozdíl od odsazování, které naopak dodržuje každý i v případech, že je to nepovinné. A to pro zvýšení přehlednosti. Máte racionální vysvětlení, proč si lidé obdobně kód v pythonu nezpřehledňují nepovinnými závorkami?

Kód: [Vybrat]
if 1 + 1 == 2:
#{
    while True:
    #{
        print("Tohle fakt funguje!")
    #}
#}

Vykook

  • ***
  • 135
    • Zobrazit profil
    • homepage
    • E-mail
Re:Python - zbožňovaný lidmi?
« Odpověď #247 kdy: 12. 12. 2017, 17:49:44 »
Mimíchodem, kdyby sis https://www.python.org/dev/peps/pep-0008/ precetl, vedel bys o parametrech -t a -tt a take bys vedel, ze python3 uz kombinaci mezer a tabu nedovoluje vubec.
Diky za upozornenie. Budem pouzivat command line option
-t     : issue warnings about inconsistent tab usage (-tt: issue errors)

A este otazka. nedaju sa kontroly zapnut aj vo vnutri kodu akoby importovanim nejakeho modulu  ?
napr. v perle zvyknem pouzivat pragmy: strict a warnings, asi takto:
Kód: [Vybrat]
#!/usr/bin/perl
use strict;
use warnings;
...
Je mozne nieco podobne aj v Pythone ?

lepší editory nebo IDE vám to označí jako chybu.

Akorát že hlavní pointou(alespoň pro mě) jsou právě ta varování za běhu, takže kontrola v IDE je vcelku k ničemu.

gll

Re:Python - zbožňovaný lidmi?
« Odpověď #248 kdy: 12. 12. 2017, 18:24:08 »
Mimíchodem, kdyby sis https://www.python.org/dev/peps/pep-0008/ precetl, vedel bys o parametrech -t a -tt a take bys vedel, ze python3 uz kombinaci mezer a tabu nedovoluje vubec.
Diky za upozornenie. Budem pouzivat command line option
-t     : issue warnings about inconsistent tab usage (-tt: issue errors)

A este otazka. nedaju sa kontroly zapnut aj vo vnutri kodu akoby importovanim nejakeho modulu  ?
napr. v perle zvyknem pouzivat pragmy: strict a warnings, asi takto:
Kód: [Vybrat]
#!/usr/bin/perl
use strict;
use warnings;
...
Je mozne nieco podobne aj v Pythone ?

lepší editory nebo IDE vám to označí jako chybu.

Akorát že hlavní pointou(alespoň pro mě) jsou právě ta varování za běhu, takže kontrola v IDE je vcelku k ničemu.

Kód: [Vybrat]
from pylint.lint import Run
Run([__file__])

Re:Python - zbožňovaný lidmi?
« Odpověď #249 kdy: 12. 12. 2017, 18:46:10 »
Já v Pythonu napsal pouze krátký program na zálohování,
Ano, to je docelá vidět, že s ním máte minimální zkušenosti. Já jsem v pythonu napsal desítky tisíc řádků kódu. Kdyby bylo odsazování objektivní problém, věděl bych o tom.

Tak jistě  :)

Hilderbert

Re:Python - zbožňovaný lidmi?
« Odpověď #250 kdy: 12. 12. 2017, 20:11:15 »
Zdá se vám to moc nebo co? Nedělám to ani na plný úvazek, jen sem tam něco, spíše menší projekty cca 2 až 7 tisíc řádků, akorát to dělám dlouho. S Pythonem jsem začal, když se přecházelo na druhou verzi, a kdy se z něj stal velmi užitečný nástroj. Před tím jsem programoval v C a někdy v té době jsem koketoval s kde čím a hledal něco efektivnějšího, zkoušel jsem tcl, perl, ruby, dokonce i javu a později c#, a lua. Python to vyhrál na plné čáře. Akorát na webu bylo jednu dobu lepší používat php a dodnes je nenahraditelný javascript, ten naopak nabývá stále víc na významu. Dnes se mi osvědčuje dělat aplikace v pythonu a gui k nim ve webovém prohlížeči přes websocket. Dělal jsem věci v týmu i čistě soukromé one man show. Weby, gui aplikace, cli utility, aplikační multithreadové servery, zpracování dat z měřících serverů, data mining. Některé věci jednorázové, některé beží přes patnáct let. Myslím že mi to za ty roky dalo hodně poznání a zkušeností, abych si mohl dovolit říct, že povinné odsazování Pythonu nepředstavuje pro programátora žádný reálný problém. Byť si někteří, co už v tom jednou něco zkusili, myslí opak a přesvědčují o tom ostatní.

PetrN

Re:Python - zbožňovaný lidmi?
« Odpověď #251 kdy: 12. 12. 2017, 20:12:54 »
Citace
začátek bloku je :, konec je řádek s menší úrovní odsazení. Nikomu jinému to nedělá problém.

    Myslel jsem si, že jsme na diskuzním fóru Root.cz ne na Novinky.cz?

To jsme, dostalo se vám věcné a správné odpovědi.

No pokud je odpověď: "Nikomu jinému to nedělá problém" věcná a správná, pak asi nemá smysl nadále pokračovat v diskuzi.

Citace
Ale když budu hrát vaši hru
O jaké hře mluvíte? Vyjadřuji zde můj názor, proč zrovná já mám problém s Pythonem. Žádnou hru zde nahraji.

Citace
Ano, to je docelá vidět, že s ním máte minimální zkušenosti. Já jsem v pythonu napsal desítky tisíc řádků kódu. Kdyby bylo odsazování objektivní problém, věděl bych o tom.

No kromě toho, že mi prostě Python nesedí, jsem také zjistil, že něktěří Pythonisti jsou hodně arogantní.

Každopádně děkuji všem, co se drželi věcné debaty.


PetrN

Re:Python - zbožňovaný lidmi?
« Odpověď #252 kdy: 12. 12. 2017, 20:17:14 »
Citace
Byť si někteří, co už v tom jednou něco zkusili, myslí opak a přesvědčují o tom ostatní.

Já bych ani neřekl, že někdo chce někoho přesvědčovat. Já opravdu nemám nic proti Pythonu, zkoušel jsem ho vícekrát použít, protože, jak jsem psal, hledal jsem něco stručného, pokud jde o mé komentáře, komentuji můj pohled na Python (proč já osobně s ním mám problém) a rozhodně nikomu nedoporučuji se tím řídit.

mln

Re:Python - zbožňovaný lidmi?
« Odpověď #253 kdy: 12. 12. 2017, 20:33:37 »
 Ludia ktorý radšej použivajú C/C++ jazyk (napr ak ste embedded programator) nemusia zúfať alebo zabíjať čas učením sa Pythonu alebo skriptovacimi jazykmi. V CERNE pre Linux vytvorili zaujimavý softver s názvom Cling interaktívny interpreter C/C++ . Stručné video https://www.youtube.com/watch?v=Lbi7MLS03Yc

dlhé video  https://www.youtube.com/watch?v=f9Xfh8pv3Fs

Daju sa stiahnuť skompilovane baliky pre najpopularnejšie distribucie. Samotný Cling netreba inštalovať (stačí mať nainštalovaný g++ a nejaké jeho zavislosti) a cely cling zaberie 1,3 GB.

Re:Python - zbožňovaný lidmi?
« Odpověď #254 kdy: 12. 12. 2017, 21:13:03 »
Myslím že mi to za ty roky dalo hodně poznání a zkušeností, abych si mohl dovolit říct, že povinné odsazování Pythonu nepředstavuje pro programátora žádný reálný problém.

Odsazování asi ne, horší čitelnost z něj* vycházející asi ano (aspoň tak to předpokládám autor myslel ;) ). Python není špatný, ale na větší projekt bych se mu spíš vyhnul, klidně i ve prospěch Perlu.

*pouze odsazování - bez závorek

Byť si někteří, co už v tom jednou něco zkusili, myslí opak a přesvědčují o tom ostatní.

Spíš mi přijde, že přesvědčuješ ty. Všechny, kteří vyjádřili jen svůj názor.