Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - Mirek Prýmek

Stran: 1 ... 101 102 [103] 104 105 ... 618
1531
Vývoj / Re:Co si myslíte o OOP?
« kdy: 07. 01. 2019, 00:47:42 »
Já si myslím, že není. Protože dynamické typování je úplně jiná (samozřejmě špatná) filozofie programování. Ale nerad bych se opakoval. :-)
To se nevylučuje. Používat v celém programu takhle široký součtový typ je úplně jiná (podle někoho samozřejmě špatná) filosofie programování ;)

1532
Vývoj / Re:Co si myslíte o OOP?
« kdy: 06. 01. 2019, 20:31:51 »
To je sice možné, ale když si mám vybrat mezi: kontrolovat, zda přišel správný typ, a pokud ne, tak chcípnout; a mezi tím, že vždy přijde správný typ...
Souhlasím, ale to jsi skočil do jiného tématu. My jsme pořád ještě u toho, že dynamické typování je vlastně jenom takový "trochu širší" součtový typ :)

1533
Vývoj / Re:Co si myslíte o OOP?
« kdy: 06. 01. 2019, 20:24:47 »
To všechno je ale pod kapotou netypovaný dict. viz x.__dict__
On možná lepší příklad než Python by byl JS nebo Lua...

1534
Vývoj / Re:Co si myslíte o OOP?
« kdy: 06. 01. 2019, 20:23:49 »
Python má historicky dva různé způsoby vytváření "recordu" - dictionary (pohodlnější) a class (těžkopádnější, ale systémovější). V poslední době přišly dvě novinky - named tuple a dataclass, protože prostě ani dictionary (nejdynamičtější řešení z dynamických) ani "normální" třída nejsou zase tak moc super.
To všechno je ale pod kapotou netypovaný dict. viz x.__dict__

To je, spolu s dalšími změnami včetně anotací typů odpověď vývojářů jazyka na otázku, zda by se příklon ke statickým programovacím jazykům přece jenom občas nehodil.
Příklon ke statičnosti se hodí vždycky, to může popírat jenom někdo s hodně velkýma klapkama na očích.

1535
Vývoj / Re:Co si myslíte o OOP?
« kdy: 06. 01. 2019, 20:16:34 »
Taková reprezentace dat je v dynamických jazycích potřeba úplně stejně.
Není.

1536
Vývoj / Re:Co si myslíte o OOP?
« kdy: 06. 01. 2019, 19:46:54 »
Takových typů je nekonečno.
Ano, takových typů je nekonečně mnoho, ale dynamické jazyky takové typy nemají, protože je nepotřebují. Statické jazyky je mají, protože potřebují nějak označit, co "z pole vyleze". Proto pokud potřebuju v dynamickém jazyce nějak reagovat na "všechny typy", není jich zas tak moc.

1537
Vývoj / Re:Co si myslíte o OOP?
« kdy: 06. 01. 2019, 19:02:40 »
Jestli to je kvantitativní nebo kvalitativní rozdíl je námět na dlouhou neplodnou filozofickou diskusi.
Souhlas.

1538
Vývoj / Re:Co si myslíte o OOP?
« kdy: 06. 01. 2019, 18:59:38 »
Ale už když se přidají struktury (v C), třídy (v C++ nebo Javě), nebo se jako struktura použije hash (v Perlu) nebo dictionary (v Pythonu), tak těch typů je nekonečně (spočetně).
C, C++ ani Java nejsou dynamické jazyky. A zcela záměrně jsem řekl Python. Python nemá parametrizovaný typ dictionary<K,V>, má jeden typ dictionary. Perl (zcela vědomě a záměrně) vůbec neznám.

Skoro bych tipoval, že většina dynamických jazyků bude mít spíš konečný počet typů, protože tam pro parametrizaci není tak silný důvod jako u statických jazyků.

1539
Vývoj / Re:Co si myslíte o OOP?
« kdy: 06. 01. 2019, 17:49:02 »
mě snad jebne!!!
Ultimátní argument ke zkvalitnění diskuse.

1540
Vývoj / Re:Co si myslíte o OOP?
« kdy: 06. 01. 2019, 17:40:32 »
Je docela rozdíl mezi "vím, že tady je string nebo int" a "vím, že tady je nějaká hodnota libovolného typu".
Ano. Ale rozdíl mezi tím, kdy nevím, jestli je to jeden ze dvou typů nebo jeden za čtyř nebo jeden z dvaceti sedmi (kolik jich je v Pythonu?), je kvantitaivní, ne kvalitativní.

1541
Vývoj / Re:Co si myslíte o OOP?
« kdy: 06. 01. 2019, 17:39:10 »
nemá ani dědičnost (tedy žádné Super)
Jestli tímhle reaguješ na to mnou zmíněné Super, tak jsi vůbec nepochopil, co jsem se snažil říct (netvrdím, že je to tvoje chyba).

1542
Vývoj / Re:Co si myslíte o OOP?
« kdy: 06. 01. 2019, 17:37:15 »
Pokud porovnáváš tuto nerozhodnost, s tupostí dynamických jazyků, tak ti udělám radost, a nebudu už v diskusi pokračovat :-P
Ne. Jenom říkám, že je to "kontinuum tuposti", přičemž není pravda, že "statické jazyky" jsou vždycky a ve všech situacích úplně vlevo a dynamické vždycky úplně v pravo. Různé jazyky se v různých situacích na tom kontinuu objevují na různých místech.

1543
Vývoj / Re:Co si myslíte o OOP?
« kdy: 06. 01. 2019, 17:21:02 »
Zatímco příklad parsováním vstupu je naopak situace, kdy ten jazyk ví všechno.
Neví, jestli výpočet půjde cestou A nebo B, to se rozhodne až za běhu.

1544
Vývoj / Re:Co si myslíte o OOP?
« kdy: 06. 01. 2019, 17:14:55 »
viz např. "phantom types"
jenom se snažím vyhnout mlhavým vágním pojmům
Neplodné slovíčkaření.

1545
Vývoj / Re:Co si myslíte o OOP?
« kdy: 06. 01. 2019, 17:13:35 »
překrucujete to
dá se říct, že dynamický jazyk má jeden součtový typ pro všechny hodnoty (Robert Harper, "unityped"), statický umí rozlišit více typů u různých částí programu (třeba funkcí)
Nic nepřekrucuju. Celou dobu říkám jenom to, že nějaké "světodějné" rozlišování mezi statickými a dynamickými jazyky je iluze (falešné dilema). Jedná se totiž jenom o množství informací, které o datech mám - a to je na kontinuu, není to binární "statický ví vždycky všechno v compile time" vs. "dynamický neví v compile time nikdy nic". Statické jazyky občas něco neví (a tím se v té části programu přiblíží k dynamickému) a dynamické občas mají možnost použít třeba anotaci (a tím se v té části programu přiblíží ke statickému).

A jelikož už jsem řekl všechno, co jsem chtěl říct, a asi třikrát zopakoval, líp už svoji myšlenku asi vyjádřit neumím, takže už se asi nemá smysl, abych se dál téhle diskuse účastnil, pokud se nějak zásadně neposune.

Stran: 1 ... 101 102 [103] 104 105 ... 618