Má Python budoucnost?

Re:Má Python budoucnost?
« Odpověď #300 kdy: 13. 05. 2016, 13:53:08 »
autěr chtěl říct, že haskelleři píšou return stejně jako se píše v pythonu nebo cčku
V Pythonu ani céčku by nikdo za return nenapsal tak dlouhej řádek, v tom to je - `$` prostě svádí spojovat příliš dlouhé výrazy a to tak blbě, že musím očima skočit ze začátku řádku za dolar, dočíst do konce řádku a pak znovu pokračovat od jeho začátku. Pokud je tam ještě třeba nějaká ta částečná aplikace, je to guláš, který se špatně čte. Dá se na to zvyknout, ale vrchol ergonomie to teda není, ať si kdo chce co chce říká, ať si Curry slzy utírá ;)


zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Má Python budoucnost?
« Odpověď #301 kdy: 13. 05. 2016, 13:53:28 »
Statickým metodám se úmyslně vyhýbám, proto mi tento detail unikl.

Tak to už máme boolean hodnoty, gettery/settery a statické metody v jediném vlákně. Které všechny konstrukce ještě považujete za naprosto zbytečné? Upřímně mě to zajímá.

Abych nezapomněl, tak jsem vyloučil konstrukce "else" a "elseif". Také jsem zrušil používání "break" uvitř konstrukce "switch". Aplikace to docela významně zkrátí, zjednoduší a zpřehlední.

Některé jazyky mají "else" jako součást ternárního operátoru. Tam ho samozřejmě používám.

Proc nezrusit i cely switch? Krome nekolika malo pripadu (ale fakt malo) je to jen chapa nahrada za spatne navrzenou hierarchii trid (vetsinou se da nahradit polymorfismem a v lepsich!!! jazycich pattern matchingem).
Pokud někdo použije Swift místo polymorfismu, tak je ňouma a měl by se nejdřív naučit programovat. Nicméně pattern matching je v podstatě jen zakamuflovaný switch, a k tomu s režií navíc, viz Swift.

atarist

Re:Má Python budoucnost?
« Odpověď #302 kdy: 13. 05. 2016, 14:24:07 »
Pokud někdo použije Swift místo polymorfismu, tak je ňouma a měl by se nejdřív naučit programovat. Nicméně pattern matching je v podstatě jen zakamuflovaný switch, a k tomu s režií navíc, viz Swift.

S prvnim souhlas (po s/Swift/switch :), s druhym uplne az tak ne. Protoze switch napriklad v C/Jave je strasne umezenej na primitivni hodnoty + retezce + vycty, kdezto pattern matching ma spoustu veci navic, od pascalovskeho 'a'..'z' az po rekneme regexpy. Tedy neco jako switch v TCL.

noef

  • *****
  • 897
    • Zobrazit profil
    • E-mail
Re:Má Python budoucnost?
« Odpověď #303 kdy: 13. 05. 2016, 14:31:35 »
Pattern matching treba ve Scale je hodne silny, defaultne umi i regexpy, ale lze si dodefinovat libovolny extractor. Celkem skoda, ze se podobne veci v popularnich jazycich prilis nevidi.

eee

Re:Má Python budoucnost?
« Odpověď #304 kdy: 13. 05. 2016, 14:31:57 »
A proč bys měl slyšet v moderní hudbě fugu? Fuga je historická hudební forma, proč by ji měl někdo dneska napodobovat?

(Že ty s těma hudebníma pojmama jenom tak šermuješ jakože "Jó, hoši, tadlencta fuga, to vám je něco!"? ;) )
Jaká historická forma? Je to živá forma a to nejen pro interprety, ale i pro mladé skladatele. https://www.megaknihy.cz/hudba/215979-preludium-a-fuga-pro-klavir.html To bys takhle mohl odsoudit kde co, treba cihly :-).

Nejde o fugu, jako takovou, ale priklad hudebni slozitosti, vedle ktere je moderni popularni hudba detsky jednoducha. A nezodpovezena otazka zni, je proto nekvalitni? Poukazuji tim na zcestnost odsuzovani neceho jen proto, ze je to jednoduche.

Jak se rika, podle sebe soudim tebe, takze mi zkus neprisuzovat sve zpusoby chovani a zkus se vyjadrit k veci.


zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Má Python budoucnost?
« Odpověď #305 kdy: 13. 05. 2016, 14:32:49 »
Pokud někdo použije Swift místo polymorfismu, tak je ňouma a měl by se nejdřív naučit programovat. Nicméně pattern matching je v podstatě jen zakamuflovaný switch, a k tomu s režií navíc, viz Swift.

S prvnim souhlas (po s/Swift/switch :), s druhym uplne az tak ne. Protoze switch napriklad v C/Jave je strasne umezenej na primitivni hodnoty + retezce + vycty, kdezto pattern matching ma spoustu veci navic, od pascalovskeho 'a'..'z' az po rekneme regexpy. Tedy neco jako switch v TCL.
Jasně, mea culpa (proč sakra nemůžu editovat příspěvek??!!). S tím druhým taky v podstatě souhlasím, protože to, že pattern matching se ve Swiftu uvozuje slovem switch, o ničem moc nevypovídá.

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Má Python budoucnost?
« Odpověď #306 kdy: 13. 05. 2016, 14:35:30 »
Pattern matching treba ve Scale je hodne silny, defaultne umi i regexpy, ale lze si dodefinovat libovolny extractor. Celkem skoda, ze se podobne veci v popularnich jazycich prilis nevidi.
Ono je obecně škoda, že se v populárních jazycích moc nevidí koncepty z FP. Možná si tvůrci jazyků myslí, že na běžného vývojáře je FP moc složité/abstraktní/matoucí... Přitom takové OOP většina také dost patlá...

v

Re:Má Python budoucnost?
« Odpověď #307 kdy: 13. 05. 2016, 14:38:01 »
A proč bys měl slyšet v moderní hudbě fugu? Fuga je historická hudební forma, proč by ji měl někdo dneska napodobovat?

(Že ty s těma hudebníma pojmama jenom tak šermuješ jakože "Jó, hoši, tadlencta fuga, to vám je něco!"? ;) )
Jaká historická forma? Je to živá forma a to nejen pro interprety, ale i pro mladé skladatele. https://www.megaknihy.cz/hudba/215979-preludium-a-fuga-pro-klavir.html To bys takhle mohl odsoudit kde co, treba cihly :-).

Nejde o fugu, jako takovou, ale priklad hudebni slozitosti, vedle ktere je moderni popularni hudba detsky jednoducha. A nezodpovezena otazka zni, je proto nekvalitni? Poukazuji tim na zcestnost odsuzovani neceho jen proto, ze je to jednoduche.

Jak se rika, podle sebe soudim tebe, takze mi zkus neprisuzovat sve zpusoby chovani a zkus se vyjadrit k veci.
tak populární hudba za Bacha asi taky nebyla moc složitá

noef

  • *****
  • 897
    • Zobrazit profil
    • E-mail
Re:Má Python budoucnost?
« Odpověď #308 kdy: 13. 05. 2016, 14:42:26 »
Pattern matching treba ve Scale je hodne silny, defaultne umi i regexpy, ale lze si dodefinovat libovolny extractor. Celkem skoda, ze se podobne veci v popularnich jazycich prilis nevidi.
Ono je obecně škoda, že se v populárních jazycích moc nevidí koncepty z FP. Možná si tvůrci jazyků myslí, že na běžného vývojáře je FP moc složité/abstraktní/matoucí... Přitom takové OOP většina také dost patlá...

Je stejne zajimave, jak dlouho trvalo OOP, nez se prosadilo. Pokud si to pamatuju spravne, tak byl potreba prechod na graficka uzivatelska rozhrani, kde OOP zazarilo, a az pak se opravdu masove zacalo pouzivat. Mozna stojime na podobnem prahu - jak roste pocet jader, ale ne vykon jadra, tak FP pristup zacina byt dost zajimavy.

PS: Je opravdu dost mozne, ze je to pouze zpusobeno pristupem skol, kdy se imperativni pristup uci prvni. A teda prijde me, ze i podstatne lepe, nez treba ten funkcionalni. V imperativnim jsme rovnou zacali patlat v C, u funkcionalniho jsme nejdriv museli prezit a nepochopit (nasprtat se) teorii a az pak, pri reseni projektu, zacit chapat, o cem ze ta teorie asi ze byla.

andy

Re:Má Python budoucnost?
« Odpověď #309 kdy: 13. 05. 2016, 14:48:37 »
je mi prostě subjektivně příjemnější
Kód: [Vybrat]
"Hello World!\nRunning on "
  `append` pack (show caps)
  `append` " CPUs!"
  |> return
Tak v principu můžeš použít:
Kód: [Vybrat]
"Hello World!\nRunning on " <> pack (show caps) <> " CPUs!" & return
Ale je to takové nehaskelloidní :)

BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Má Python budoucnost?
« Odpověď #310 kdy: 13. 05. 2016, 14:54:01 »
autěr chtěl říct, že haskelleři píšou return stejně jako se píše v pythonu nebo cčku
V Pythonu ani céčku by nikdo za return nenapsal tak dlouhej řádek, v tom to je - `$` prostě svádí spojovat příliš dlouhé výrazy a to tak blbě, že musím očima skočit ze začátku řádku za dolar, dočíst do konce řádku a pak znovu pokračovat od jeho začátku. Pokud je tam ještě třeba nějaká ta částečná aplikace, je to guláš, který se špatně čte. Dá se na to zvyknout, ale vrchol ergonomie to teda není, ať si kdo chce co chce říká, ať si Curry slzy utírá ;)

Hmm, imho je to tím, že v Haskellu je všechno něco jako: "a je ve skutečnosti b".
Kód: [Vybrat]
a = 1 + 1

Takže to return nalevo dává logiku. Zatímco v Imperativních jazycích je to spíše: "nejdřív udělej a;hotovo? Tak teď b; hotovo? tak teď c; hotovo? Tak teď vrať d."

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Má Python budoucnost?
« Odpověď #311 kdy: 13. 05. 2016, 14:54:56 »
Pattern matching treba ve Scale je hodne silny, defaultne umi i regexpy, ale lze si dodefinovat libovolny extractor. Celkem skoda, ze se podobne veci v popularnich jazycich prilis nevidi.
Ono je obecně škoda, že se v populárních jazycích moc nevidí koncepty z FP. Možná si tvůrci jazyků myslí, že na běžného vývojáře je FP moc složité/abstraktní/matoucí... Přitom takové OOP většina také dost patlá...

Je stejne zajimave, jak dlouho trvalo OOP, nez se prosadilo. Pokud si to pamatuju spravne, tak byl potreba prechod na graficka uzivatelska rozhrani, kde OOP zazarilo, a az pak se opravdu masove zacalo pouzivat. Mozna stojime na podobnem prahu - jak roste pocet jader, ale ne vykon jadra, tak FP pristup zacina byt dost zajimavy.

PS: Je opravdu dost mozne, ze je to pouze zpusobeno pristupem skol, kdy se imperativni pristup uci prvni. A teda prijde me, ze i podstatne lepe, nez treba ten funkcionalni. V imperativnim jsme rovnou zacali patlat v C, u funkcionalniho jsme nejdriv museli prezit a nepochopit (nasprtat se) teorii a az pak, pri reseni projektu, zacit chapat, o cem ze ta teorie asi ze byla.

1) To bude asi tím, že GUI je jeden z mála reálných případů, kdy má smysl dědičnost (která jinak v OOP spíše škodí).

2) To je chybným stylem výuky, lepší by bylo postupovat - podle Komenského - od konkrétního k abstraktnímu, neb teorie je sice důležitá, ale lépe a rychleji ji člověk pochopí, když už má určité kousky znalostí (z praktických příkladů a menších projektů) a teprve poté si je začne dávat do širšího kontextu a objevovat souvislosti mezi nimi. Super příklad (byť trochu extrémní) jsou ony nechvalně známé monády, ale k ilustraci problému bohatě postačí třeba i teorie typů, jakmile se dostaneme k pojmu ko(ntra)variantní.

andy

Re:Má Python budoucnost?
« Odpověď #312 kdy: 13. 05. 2016, 14:55:44 »
V Pythonu ani céčku by nikdo za return nenapsal tak dlouhej řádek, v tom to je - `$` prostě svádí spojovat příliš dlouhé výrazy a to tak blbě, že musím očima skočit ze začátku řádku za dolar, dočíst do konce řádku a pak znovu pokračovat od jeho začátku. Pokud je tam ještě třeba nějaká ta částečná aplikace, je to guláš, který se špatně čte. Dá se na to zvyknout, ale vrchol ergonomie to teda není, ať si kdo chce co chce říká, ať si Curry slzy utírá ;)
On return v haskellu není return :) Já osobně to tak různě mixuju, ale je fakt že s tím & operátorem to někdy vypadá líp:
Kód: [Vybrat]
result = input & map (+1)
               & filter (<100)
               & sum

Citace
Nejde o fugu, jako takovou, ale priklad hudebni slozitosti, vedle ktere je moderni popularni hudba detsky jednoducha. A nezodpovezena otazka zni, je proto nekvalitni? Poukazuji tim na zcestnost odsuzovani neceho jen proto, ze je to jednoduche.
No můj osobní názor teda je, že víceméně je. A to můžeš porovnat třeba s takovým Arvo Partem, jehož hudba je taky často jednoduchá a zároveň geniální. Výjimky se najdou, ale tak trošku potvrzují pravidlo.

beny

Re:Má Python budoucnost?
« Odpověď #313 kdy: 13. 05. 2016, 14:59:12 »
Statickým metodám se úmyslně vyhýbám, proto mi tento detail unikl.

Tak to už máme boolean hodnoty, gettery/settery a statické metody v jediném vlákně. Které všechny konstrukce ještě považujete za naprosto zbytečné? Upřímně mě to zajímá.

Abych nezapomněl, tak jsem vyloučil konstrukce "else" a "elseif". Také jsem zrušil používání "break" uvitř konstrukce "switch". Aplikace to docela významně zkrátí, zjednoduší a zpřehlední.

Některé jazyky mají "else" jako součást ternárního operátoru. Tam ho samozřejmě používám.

Proc nezrusit i cely switch? Krome nekolika malo pripadu (ale fakt malo) je to jen chapa nahrada za spatne navrzenou hierarchii trid (vetsinou se da nahradit polymorfismem a v lepsich!!! jazycich pattern matchingem).

pattern matching je len vylepseny switch.

Kit

Re:Má Python budoucnost?
« Odpověď #314 kdy: 13. 05. 2016, 15:16:52 »
Proc nezrusit i cely switch? Krome nekolika malo pripadu (ale fakt malo) je to jen chapa nahrada za spatne navrzenou hierarchii trid (vetsinou se da nahradit polymorfismem a v lepsich!!! jazycich pattern matchingem).

pattern matching je len vylepseny switch.

Ne tak docela. Ten pattern totiž nemusí být součástí nějakého nadřazeného elementu (konstrukce if nebo switch).