Má Python budoucnost?

Kit

Re:Má Python budoucnost?
« Odpověď #255 kdy: 12. 05. 2016, 20:51:43 »
https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
Cituji: Model–view–controller (MVC) is a software architectural pattern for implementing user interfaces on computers.

Však to souhlasí. Controllerem je klávesnice, jako View obrazovka a jako Model je ten počítač, ke kterému jsou tyto komponenty připojeny.

Tlačítka zobrazovaná na monitoru už do tohoto schématu nepasují, proto byl navržen alternativní systém MVP, který už řeší interaktivitu těchto tlačítek. Do aplikace se pak předávají až jejich události.


BoneFlute

  • *****
  • 1 983
    • Zobrazit profil
Re:Má Python budoucnost?
« Odpověď #256 kdy: 12. 05. 2016, 20:53:56 »
Ohavnosti jako __str__() nebo ducktyping tam opravdu nenajdes.
Docela mě dráždí, jak slučuješ estetickou záležitost (__str__()) a technologickou záležitost (ducktyping versus nominální typování).

Oba pripady spadaji do souhrnne mnoziny "znouzectnost".

__str__() protoze python nema toplevel class
ducktyping() - protoze typovani neni, tak budeme typ hadat a doufat, ze nekoho jineho nenapadlo napsat podobnou tridu.

Blbost.

__str__() je metoda z (jakéhosi) rozhraní Stringable. Není to žádná hrůza, a to, že se tam dávají podtržítka je prostě konvence a estetická záležitost. To je všechno.

Volbu duck-typingu považuji za faktický problém (i když připouštím, že v praxi se nemusí projevovat).

noef

  • *****
  • 897
    • Zobrazit profil
    • E-mail
Re:Má Python budoucnost?
« Odpověď #257 kdy: 12. 05. 2016, 20:55:04 »
Je hezke, ze Python nabizi take metaprogramovani. Osobne jsem si nad JVM pri modovani Mincraftu hral s reflexi a i upravou bytekodu za behu (bohuzel to ani jinak neslo, rozhodne neslo o mou prvni volbu ;D). Ale jak jsem psal vyse, pri vyvoji normalnich aplikaci to clovek nepouzije (nebo mozna spise bych mel napsat "by nemel pouzivat"). Je to velmi podobne jako makra pro prekladac ve Scale - velice pokrocile, velmi efektni, ale casto tak komplexni, ze to akorat bude delat problemy pri udrzbe. "Pokrocila magie" je vystizne, jak psal nekdo prede mnou, tak i podle me, by ji mely pouzivat pouze knihovny, ktere maji vse velmi detailne zdokumentovane.

atarist

Re:Má Python budoucnost?
« Odpověď #258 kdy: 12. 05. 2016, 21:12:33 »
"this." se v Javě píše jako prefix názvu atributu objektu. Tedy někdy se píše, jindy ne. "self." je v Pythonu povinné.

Tak to není úplně přesné, může se psát i u metody s naprosto stejným významem. Ale nikdy se nepíše v seznamu parametrů metody, tam je to totiž zřejmé z její hlavičky, kdy se self použije a kdy ne (statické metody).

Kit

Re:Má Python budoucnost?
« Odpověď #259 kdy: 12. 05. 2016, 21:15:25 »
Oba pripady spadaji do souhrnne mnoziny "znouzectnost".

__str__() protoze python nema toplevel class
ducktyping() - protoze typovani neni, tak budeme typ hadat a doufat, ze nekoho jineho nenapadlo napsat podobnou tridu.

C# také nemá toplevel class. Řekl bych, že to nikomu nevadí. Jinak je úplně jedno, zda se ta metoda jmenuje __str__() nebo toString(). Píši to pokaždé stejně a nechávám na korektuře pravopisu, aby mi napsala správné záhlaví metody.

Nějaká podobná třída by vadila? Běžně ve třídách používám stále stejné názvy metod a dokonce i třídy mají (i v rámci jednoho projektu) často stejná jména. Ničemu to nevadí a nemusím si pamatovat tolik názvů.


Kit

Re:Má Python budoucnost?
« Odpověď #260 kdy: 12. 05. 2016, 21:18:20 »
"this." se v Javě píše jako prefix názvu atributu objektu. Tedy někdy se píše, jindy ne. "self." je v Pythonu povinné.

Tak to není úplně přesné, může se psát i u metody s naprosto stejným významem. Ale nikdy se nepíše v seznamu parametrů metody, tam je to totiž zřejmé z její hlavičky, kdy se self použije a kdy ne (statické metody).

Statickým metodám se úmyslně vyhýbám, proto mi tento detail unikl.

atarist

Re:Má Python budoucnost?
« Odpověď #261 kdy: 12. 05. 2016, 21:25:53 »
"this." se v Javě píše jako prefix názvu atributu objektu. Tedy někdy se píše, jindy ne. "self." je v Pythonu povinné.

Tak to není úplně přesné, může se psát i u metody s naprosto stejným významem. Ale nikdy se nepíše v seznamu parametrů metody, tam je to totiž zřejmé z její hlavičky, kdy se self použije a kdy ne (statické metody).

Statickým metodám se úmyslně vyhýbám, proto mi tento detail unikl.

To je dobře, ono je to většinou dobře se jim vyhnout, jejich použití mnohdy naznačuje, že v kódu něco smrdí (pokud se člověk nesnaží i FP, ale to by bylo patrné i z dalších technik, většinou to tak není).

Re:Má Python budoucnost?
« Odpověď #262 kdy: 12. 05. 2016, 21:26:09 »
JavaScript je funkcionalni, od ES6 umi i hezky kondenzovane fat-arrow funkce, ale bez externi knihovny take hodne slaby [co se vyberu funkci tyce]).

*: Nasel jsem jakesi reseni v podobe doimplementovani pipe opratoru a preimplementovani zabudovanych funkci jako map nebo filter na curried variantu. IMO celkem hnusne reseni - narovnavak na ohybak.

Myslis toto?

https://www.npmjs.com/package/babel-plugin-operator-overload

Tiez som na to nedavno pozeral s otvorenymi ustami :D takze JS uz ma aj currying :D ale stale si nemyslim ze je to  plnohodnotny funkcionalny jazyk. Je to imperativny jazyk ktory umoznuje pisat aj funkcionalny kod. Ale ta podpora FP je tam zhruba na urovni C#.
« Poslední změna: 12. 05. 2016, 21:30:05 od xxar3s »

eee

Re:Má Python budoucnost?
« Odpověď #263 kdy: 13. 05. 2016, 00:28:25 »
Citace
je tak uspesny a rozsireny

Ono argumentovat popularitou je dost ošemetné. Kdybych to měl přirovnat třeba k hudbě, tak takový Justin Bieber má na YT miliardy shlédnutí a přitom objektivně jeho produkce stojí za hovno. Popularita a kvalita bohužel ne vždy jdou ruku v ruce a často se vyloženě rozcházejí. Někdy se to krásně sejde, ale jedno automaticky nevyplývá z druhého.

A) neustale ta same hloupe nerozlisovani mezi pouzitelnosti, popularitou a kvalitou

B) navic si tu nekdo plete subjektivni s objektivnim. Objektivni je meritelne a objektivne ma produkce Justina vysokou hodnotu, jak ukazuji jeho prijmy, coz je primarnim cilem komercni hudebni produkce. Python je oproti tomu jazyk nekomercni, meritkem jeho uspechu je rozsirenost a nezbyva nez konstatovatk ze je jazykem nadmiru uspesnym a ze nabizi vlastnosti, ktere uspokojuji velkou skupinu uzivatelu. V jeho pripade je jeho rozsirenost ukazatelem jeho pouzitelnosti.

Erik

Re:Má Python budoucnost?
« Odpověď #264 kdy: 13. 05. 2016, 04:47:36 »
Citace
objektivne ma produkce Justina vysokou hodnotu, jak ukazuji jeho prijmy

Ty to opravdu nechápeš? Vždyť je to tak jednoduché. Finanční hodnotu to má možná proto, že to dokáže rozvřískat stadion nadržených patnáctek s mickey mousem na triku. O hudební kvalite to ale neříká vůbec nic. Jestli si tady někdo něco plete, pak jsou to slova hodnota a kvalita. Já celou dobu mluvím o tom druhém.

ROFL

Re:Má Python budoucnost?
« Odpověď #265 kdy: 13. 05. 2016, 05:58: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á.

Mně to teda připadá, jako když se někdo rozhodne, že bude psát bez interpunkce, diakritiky, nebude text dělit do odstavců a nebude ani rozlišovat velká a malá písmena. Jsou to jednak úplné zbytečnosti a hlavně v tom pak neudělá chybu. Sice potom působí jako negramot a ostatním se to po něm špatně čte, ale ke sdělení informace opravdu žádnou z těch zbytečností nepotřeboval.

Ono stačí si někdy poslechnout běžný rozhovor na ulici, s jak omezeným slovníkem si někteří vystačí. To ale přece neznamená, že je to vole takhle upa v cajku vole a vůbec kdo má vole na tydlencty panský vymyšlenosti náladu vole, nasrat.

eee

Re:Má Python budoucnost?
« Odpověď #266 kdy: 13. 05. 2016, 06:03:03 »
Citace
objektivne ma produkce Justina vysokou hodnotu, jak ukazuji jeho prijmy

Ty to opravdu nechápeš? Vždyť je to tak jednoduché. Finanční hodnotu to má možná proto, že to dokáže rozvřískat stadion nadržených patnáctek s mickey mousem na triku. O hudební kvalite to ale neříká vůbec nic. Jestli si tady někdo něco plete, pak jsou to slova hodnota a kvalita. Já celou dobu mluvím o tom druhém.

Ty seš úplně mimo člověče, vždyť ty vůbec netušíš o čem je řeč :-). Prečti si počátek debaty, ať alespoň tušíš, že spor je o použitelnosti, nikoliv kvalitě.

Justinovo vystoupení má vysokou hodnotu, protože vydělává a protože je to vystoupení komerční a jeho cílem je vydělávat, je úspěšné. Kvalita s tím nemá vůbec co do činění a je to fail argument, na to poukazují akorát závistivci.

Stejně tak to platí o pythonu, kde jakýsi závistivec tvrdil, že python je nepoužitelný a já jsem argumentoval tím, že je to zjevný nesmysl, když je to jeden z nejpoužívanějších jazyků a etabloval se v řadě oblastí. Kvalita s tím nemá nic do činění.

Navíc opírat se o kvalitu je čistě subjektivní záležitost, byť se tu někdo snaží tvrdit přesný opak. Objektivní měřítko kvality jazyka neexistuje,  protože hodnotící měřítka jsou čistě subjektivní. Platí to i o hudbě. Pokud jsem hudebním producentem, který chce vydělat, tak si jako základní měřítkem kvality pro výběr hudebníka vezmu jeho potenciál vydělat a přinést mi zisk.  Nikoliv nějaké pochybné hudební kvality, které nikdo nedovede objektivně definovat a měřit. Justin mi vyjde jako kvalitní zpěvák a dám mu přednost před jiným, který tu schopnost a potenciál nemá, byť mi ho budeš podsouvat, jako údajně kvalitnějšího. A to samé platí o programování a programovacích jazycích. Kvalita je odpověď na otázku jaký a tato otázka může být libovolná. Hodnocení kvality je subjektivní záležitost, je to věc úhlu pohledu daná např. vkusem, osobními preferencemi nebo účelem využití.

Jestliže je pro mě důležitá praktická použitelnost jazyka, mohu si položit otázku, jaký jazyk je nejpoužitelnější, např. na vývoj středně velkého webu běžícím na webhostingu. A vyjde mi zatracované PHP a nikoliv nepraktický haskell, který tu furt někdo nesmyslně prosazuje. A s tímto měřítkem kvality mohu dokonce tvrdit, že PHP je kvalitnější jazyk než haskell, protože hodnocení kvality je subjektivní.

Dovolím si tvrdit, že měřítko použitelnosti je pro programátory v praxi daleko důležitější, než jakési akademické tajemně nedefinované měřítko, podle kterého tu někdo subjektivně lépe hodnotí haskell. Měřítko použitelnosti rozhoduje o úspěchu a rozšíření jazyka. Takže konec konců i tu popularitu mohu oprávněně brát za kvalitativní parametr a ne že ne.

Re:Má Python budoucnost?
« Odpověď #267 kdy: 13. 05. 2016, 07:53:19 »
Řetězení transformací je chytlavý nešvar FP, nedá se to dobře testovat. A v konečném důsledku je to podobné, jako když funkce má 12 parametrů.
Python je navržen schválně tak, aby nic nešlo lehce řetězit.
To je samozřejmě opět nesmysl. Řetězení není nic jiného než nepojmenovávání proměnných, které pojmenovávat nepotřebuju.

Kód: [Vybrat]
d = a |> f |> g |> h

je úplně to samé jako

Kód: [Vybrat]
b = f(a)
c = g(b)
d = h(c)

a je to úplně stejně testovatelné. Funkce s 12 parametry to fakt není.

Re:Má Python budoucnost?
« Odpověď #268 kdy: 13. 05. 2016, 07:57:37 »
Neumim si predstavit, ze bych neco jako scala pouzival prakticky, tj. ze bych mel odvahu to nasadit u zakaznika v rozsahu desitek tisic radkukodu a udrzoval/rozvijel to 15+ let. Pro me je to neduveryhodny a proto _prakticky_ nepouzitelny jazyk.
A přesně proto je ve Scale napsaný Spark, pomocí kterého se v produkci zpracovávají největší množství dat a postupně válcuje Hadoop :)

Re:Má Python budoucnost?
« Odpověď #269 kdy: 13. 05. 2016, 08:01:14 »
Spousta funkcí v haskellu má nic neříkající typovou signaturu jako a -> a. Například většina matematických funkcí má signaturu Floating a => a -> a. Docstring v pythonu často obsahuje příklad použití, který mohu spustit jako test.
To je naopak signatura, která říká naprosto všechno - že jde o fci, která může pracovat s libovolným typem ze třídy Floating a vrací stejný typ, jaký mu dám. Co víc bys mohl chtít vědět?