Python - dobré rady a praktiky

Ivan Nový

Re:Python - dobré rady a praktiky
« Odpověď #255 kdy: 31. 03. 2016, 14:22:28 »
A nebo to náhoda je. Těch vlivů je spousta. A spousta významných jmen kolem počátků informatiky rozhodně z anglosaského prostředí nepochází.
Jedním z prvních, kdo se modelováním kroků výpočtu zabýval, byl Gödel, který se narodil v Brně, ale mluvil Německy. Tak nevím, co z toho asi plyne pro vlastnosti deklarativních jazyků :)))
Ada Lovelace byla o 80 let starší než Kurt Godel, ale jeho otec vlastnil textilní továrnu (podle Wikipedie), kupodivu, třeba si Godel jako dítě hrál s děrnými štítky od firmy Hollerith  :-)


Re:Python - dobré rady a praktiky
« Odpověď #256 kdy: 31. 03. 2016, 14:25:28 »
Ada Lovelace byla o 80 let starší než Kurt Godel, ale jeho otec vlastnil textilní továrnu (podle Wikipedie), kupodivu, třeba si Godel jako dítě hrál s děrnými štítky od firmy Hollerith  :-)
To je pravda, na Adu jsem úplně zapomněl. Tak teď už je to jasný, proč jsou deklarativní jazyky tak blbý.

JSH

Re:Python - dobré rady a praktiky
« Odpověď #257 kdy: 31. 03. 2016, 14:30:30 »
Ada Lovelace byla o 80 let starší než Kurt Godel, ale jeho otec vlastnil textilní továrnu (podle Wikipedie), kupodivu, třeba si Godel jako dítě hrál s děrnými štítky od firmy Hollerith  :-)
To je pravda, na Adu jsem úplně zapomněl. Tak teď už je to jasný, proč jsou deklarativní jazyky tak blbý.
Já bych šel podstatně dál. Třeba k takovým flašinetům.

Ivan Nový

Re:Python - dobré rady a praktiky
« Odpověď #258 kdy: 31. 03. 2016, 14:36:18 »
Ada Lovelace byla o 80 let starší než Kurt Godel, ale jeho otec vlastnil textilní továrnu (podle Wikipedie), kupodivu, třeba si Godel jako dítě hrál s děrnými štítky od firmy Hollerith  :-)
To je pravda, na Adu jsem úplně zapomněl. Tak teď už je to jasný, proč jsou deklarativní jazyky tak blbý.
Tak zpracování dat na děrnoštítkovém stroji je ve stylu FP. Děrnoštítkové stroje uměly snad jen sort, map, reduce a sum a data na štítku byla imutabilní :-) U nás byly první děrnoštítkové stroje v roce 1929.

Kiwi

Re:Python - dobré rady a praktiky
« Odpověď #259 kdy: 31. 03. 2016, 14:50:09 »
Další diskuse na téma „co je lepší na reálné nasazení – vrtulník nebo letadlo?”


zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Python - dobré rady a praktiky
« Odpověď #260 kdy: 31. 03. 2016, 14:56:58 »
Montague si to nemyslel.
"There is in my opinion no important theoretical difference between natural languages and the artificial languages of logicians; indeed I consider it possible to comprehend the syntax and semantics of both kinds of languages with a single natural and mathematically precise theory."
Teoretické rozdíly mezi nimi možná nejsou, ale ty praktické myslím bohatě stačí. Rozdíly v úspěšnosti překladačů přirozených a programovacích jazyků to IMO ilustrují dostatečně. Nemám problém s tím, hledat mezi nimi podobnosti a společnou teorii. Mám problém s tím, když se bezstarostně strkají do jednoho pytle.
Jasně, ale to je jen tím, že gramatika formálních jazyků je (v podstatě) jednoznačná.


BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Python - dobré rady a praktiky
« Odpověď #262 kdy: 31. 03. 2016, 15:06:08 »
Myslím, že bych vyjmenoval pár jazyků, které bych dal před něj. Začal bych Haskellem.

To je velmi odvážné tvrzení. Haskellovská syntaxe je úsporná, ale obliba infixových funkcí trochu připomíná jazyky typu J a transformátory monád apod. spolehlivě vylámou zuby 99% běžných programátorů.

Na druhou stranu, jak říká jeden známý, v Perlu lze psát v každém jazyce, takže klidně věřím, že ses setkal s Pythonem, který byl hůře čitelný než Haskell. Nebo ses narodil s IO monádou na čele, klidně věřím, že pro někoho je Haskell z nějakého důvodu pro někoho přirozenější.
Můžeš si všimnout, že jsem nikde nic o monádách nepsal. Taky jsem nikde nepsal o tom, že Haskell je lepší jak Python. Reagoval jsem, že co se čitelnosti, je na tom Haskell lépe. IMHO.

BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Python - dobré rady a praktiky
« Odpověď #263 kdy: 31. 03. 2016, 15:10:30 »
To s tou údržbou by si taky zasloužilo nějaké bližší vysvětlení.
Jakmile tam někde něco chci změnit, začne to vystřeloval chyby a rozpadá se to. Prostě já s ním nedělám rád.
Není rozdíl v tom, když vám chyby vyhodí překladač a když chyby vyhodí runtime. Chyba je chyba a je jedno v kterém kroku se na ni přijde. Jedno to nebylo před 30 lety, kdy byl strojový čas drahý.
Rozhodně není.

V každém "deklarativním" jazyku je chybu težší odhalit, protože odvozovací pravidla generují vlastní jazyk a vyřešit úlohu, zda generovaný jazyk, odpovídá konkrétnímu jazyku a zamýšlenému účelu, je dosti náročné, už jenom proto, že musíte pracovat se všemi pravidly najednou a nebo neustále ověřovat, jaké pravidlo bylo uplatněno v daném místě. Velkou paseku nadělají i "e-pravidla", pak musíte hledat všechna pravidla, která se mohou v daném místě vyskytnout místo "e-pravidla" a to stále znovu a znovu.

Jazyk aplikace se pak "syntetizuje", tedy na každou akci si musíte vytvořit vlastní slovo (funkci), které získáváte odvozováním od už existujíích slov (funkcí), takže závislosti vznikají mnohem horší než u imperativních jazyků, kde můžete rozumně závislosti omezit na okolí funkce, či metody.
Abych šetřil svou klávesnici - prostě to otoč, a budeš znát můj názor.

Výhody FP jsou zdánlivé, protože toto paradigma není široce používáno a každý kdo ho používá se hrabe většinou ve vlastním kódu, takže sdílená údržba různými lidmi není dostatečně ověřena.
To nemohu potvrdit. Ve většině haskellovského kódu, co jsem si přitáhl z cabalu jsem se celkem dobře orientoval, a když jsem něco potřeboval, tak to doslova spolupracovalo. Navzdory tomu, že i Haskellisti trpí nemocí, "na co dokumentace".

Ivan Nový

Re:Python - dobré rady a praktiky
« Odpověď #264 kdy: 31. 03. 2016, 15:29:39 »
To s tou údržbou by si taky zasloužilo nějaké bližší vysvětlení.
Jakmile tam někde něco chci změnit, začne to vystřeloval chyby a rozpadá se to. Prostě já s ním nedělám rád.
Není rozdíl v tom, když vám chyby vyhodí překladač a když chyby vyhodí runtime. Chyba je chyba a je jedno v kterém kroku se na ni přijde. Jedno to nebylo před 30 lety, kdy byl strojový čas drahý.
Rozhodně není.

V každém "deklarativním" jazyku je chybu težší odhalit, protože odvozovací pravidla generují vlastní jazyk a vyřešit úlohu, zda generovaný jazyk, odpovídá konkrétnímu jazyku a zamýšlenému účelu, je dosti náročné, už jenom proto, že musíte pracovat se všemi pravidly najednou a nebo neustále ověřovat, jaké pravidlo bylo uplatněno v daném místě. Velkou paseku nadělají i "e-pravidla", pak musíte hledat všechna pravidla, která se mohou v daném místě vyskytnout místo "e-pravidla" a to stále znovu a znovu.

Jazyk aplikace se pak "syntetizuje", tedy na každou akci si musíte vytvořit vlastní slovo (funkci), které získáváte odvozováním od už existujíích slov (funkcí), takže závislosti vznikají mnohem horší než u imperativních jazyků, kde můžete rozumně závislosti omezit na okolí funkce, či metody.
Abych šetřil svou klávesnici - prostě to otoč, a budeš znát můj názor.

Výhody FP jsou zdánlivé, protože toto paradigma není široce používáno a každý kdo ho používá se hrabe většinou ve vlastním kódu, takže sdílená údržba různými lidmi není dostatečně ověřena.
To nemohu potvrdit. Ve většině haskellovského kódu, co jsem si přitáhl z cabalu jsem se celkem dobře orientoval, a když jsem něco potřeboval, tak to doslova spolupracovalo. Navzdory tomu, že i Haskellisti trpí nemocí, "na co dokumentace".
Nyní v Haskellu dělají lidi co ho mají rádi, idealisti, jazyk a přístupy v něm prověří až lidé, které ta práce nebaví a dělají to třeba jen pro peníze.

JSH

Re:Python - dobré rady a praktiky
« Odpověď #265 kdy: 31. 03. 2016, 15:47:27 »
Jasně, ale to je jen tím, že gramatika formálních jazyků je (v podstatě) jednoznačná.
A gramatika těch přirozených (jsou vůbec nějaké výjimky?) nejednoznačná. Není to dostatečný praktický rozdíl?

F

Re:Python - dobré rady a praktiky
« Odpověď #266 kdy: 31. 03. 2016, 16:13:45 »
To tu docela začíná připomínat http://existentialcomics.com/comic/68

Re:Python - dobré rady a praktiky
« Odpověď #267 kdy: 31. 03. 2016, 17:19:15 »
Ahoj,
...
Mam tedy otazku na zkusenejsi programatory v Pythonu. Mohli by jste mi doporucit knizku nebo internetovy zdroj o dobrych praktikach a pristupech, jak v Pythonu rozume programovat? Tech zdroju na internetu je hrozne moc, a nevim, ktery je kvalitni.
...
Chtel bych neco na tema OOP (spoustu let programuju v Jave, ktera ma OOP pojate docela jinak nez v py) nebo obecne praktiky...

Diky za rady! :)

Tak snad Ti to pomohlo.
Nemáš zač.
 ;)

gl

Re:Python - dobré rady a praktiky
« Odpověď #268 kdy: 31. 03. 2016, 18:27:23 »
Ahoj,
...
Mam tedy otazku na zkusenejsi programatory v Pythonu. Mohli by jste mi doporucit knizku nebo internetovy zdroj o dobrych praktikach a pristupech, jak v Pythonu rozume programovat? Tech zdroju na internetu je hrozne moc, a nevim, ktery je kvalitni.
...
Chtel bych neco na tema OOP (spoustu let programuju v Jave, ktera ma OOP pojate docela jinak nez v py) nebo obecne praktiky...

Diky za rady! :)

Tak snad Ti to pomohlo.
Nemáš zač.
 ;)

Mnoho knih jsem nepřečetl. Doporučil bych Python Cookbook a Test-Driven Development with Python. Ještě jsem přečetl Two Scoops of Django, což je kniha která obsahuje hlavně obecné povídání a subjektiví názory na best practices. Přínosnější je si prohlédnout nějaký reálný projekt. V češtině vyšla kniha Python 3 výukový kurz. Knihu mám koupenou. Moc se mi nelíbí překlad.

Určitě bych doporučil nějaký plugin do editoru pro kontrolu dodržování konvencí a prevenci překlepů. OOP se zabývá téměř každá kniha.

Re:Python - dobré rady a praktiky
« Odpověď #269 kdy: 01. 04. 2016, 10:17:46 »