Co si myslíte o OOP?

Inkvizitor

Re:Co si myslíte o OOP?
« Odpověď #720 kdy: 08. 01. 2019, 15:08:07 »
BTW tohle by měly mít všechny jazyky, je to praktické.
Souhlas, tohle je rozhodne jedna z tech svetlejsich stranek Gocka :)

Bohuzel to je dvojsecne. Napr. Rust dovoluje implementovat stejnou metodu pro typ pro ruzne traity (aka interfacy). K te duplicite muze dojit, protoze traity lze definovat uzivatelsky v kteremkoli modulu a duplicite se obecne nelze vyhnout, protoze stejny napad na nazev muze dostat vice lidi. Chapu, ze pristup Go ma svoje vyhody a muze byt prijemny, na druhou stranu zase nevidim zadnou zvlastni komplikaci v tom, ze implementaci interface/traitu musi autor explicitne deklarovat. Typovy system to pozna, prekladac to validuje, prace s tim prakticky zadna neni, IMO soudruzi v Google opet soustredili svoje usili ponekud pochybnym smerem.


I/O

Re:Co si myslíte o OOP?
« Odpověď #721 kdy: 08. 01. 2019, 15:27:01 »
IMHO by bylo užitečnější místo této diskuze vést polemiku ve formě série článků s různými autory. Autoři by museli lépe argumentovat a uvést konkrétní příklady, na které by se pak lépe reagovalo. Portál by měl přísun zajímavých článků a paradoxně by si možná všichni ušetřili čas promrhaný v diskuzi... :-D
A s kterými? :D Kdyby tu polemiku vedli lidé jako A. Kay, D. Knuth nebo N. Wirth, tak bych si ji i rád přečetl. Ale na myšlenkové průjmy jakýchsi bezvýznamných českých Brouků Pytlíků bych fakt zvědavý nebyl. Takže když se tu nějaký anonymní niemand vysmívá dynamicky typovaným jazykům a lidem, kteří je používají, tak má pro mě mnohem větší váhu názor nositele Turingovy ceny:

I'm not against types, but I don't know of any type systems that aren't a complete pain, so I still like dynamic typing.

pepa

Re:Co si myslíte o OOP?
« Odpověď #722 kdy: 08. 01. 2019, 15:38:30 »
I'm not against types, but I don't know of any type systems that aren't a complete pain, so I still like dynamic typing.

Asi nějaká lopata, která si myslí, že statické typy jsou jen na zlepšení výkonu ;D

Inkvizitor

Re:Co si myslíte o OOP?
« Odpověď #723 kdy: 08. 01. 2019, 15:40:53 »
I'm not against types, but I don't know of any type systems that aren't a complete pain, so I still like dynamic typing.

Asi nějaká lopata, která si myslí, že statické typy jsou jen na zlepšení výkonu ;D

Ne, je to jinak. Protoze Alan Kay v roce 2003 prohlasil, ze vsechny typove systemy ktere zna, jsou moc velky opruz, je to vecna a nezpochybnitelna pravda platna i pro vsechny jazyky budoucnosti a diskuse je zbytecna.

v

Re:Co si myslíte o OOP?
« Odpověď #724 kdy: 08. 01. 2019, 15:52:41 »
IMHO by bylo užitečnější místo této diskuze vést polemiku ve formě série článků s různými autory. Autoři by museli lépe argumentovat a uvést konkrétní příklady, na které by se pak lépe reagovalo. Portál by měl přísun zajímavých článků a paradoxně by si možná všichni ušetřili čas promrhaný v diskuzi... :-D
A s kterými? :D Kdyby tu polemiku vedli lidé jako A. Kay, D. Knuth nebo N. Wirth, tak bych si ji i rád přečetl. Ale na myšlenkové průjmy jakýchsi bezvýznamných českých Brouků Pytlíků bych fakt zvědavý nebyl. Takže když se tu nějaký anonymní niemand vysmívá dynamicky typovaným jazykům a lidem, kteří je používají, tak má pro mě mnohem větší váhu názor nositele Turingovy ceny:

I'm not against types, but I don't know of any type systems that aren't a complete pain, so I still like dynamic typing.
"I thought of objects being like biological cells and/or individual computers on a network, only able to communicate with messages"
- nositel turingovy ceny

"When people who can’t think logically design large systems, those systems become incomprehensible. And we start thinking of them as biological systems.  And since biological systems are too complex to understand, it seems perfectly natural that computer programs should be too complex to understand.
We should not accept this."
-jiný nositel turingovy ceny


operator

Re:Co si myslíte o OOP?
« Odpověď #725 kdy: 08. 01. 2019, 16:28:50 »
I'm not against types, but I don't know of any type systems that aren't a complete pain, so I still like dynamic typing.
Asi nějaká lopata, která si myslí, že statické typy jsou jen na zlepšení výkonu ;D
Nevyuzivaji se jen na zlepseni vykonu, ale kvuli tomu vznikly a v tom jedinem jsou nenahraditelne.

I/O

Re:Co si myslíte o OOP?
« Odpověď #726 kdy: 08. 01. 2019, 16:43:35 »
I'm not against types, but I don't know of any type systems that aren't a complete pain, so I still like dynamic typing.

Asi nějaká lopata, která si myslí, že statické typy jsou jen na zlepšení výkonu ;D

Ne, je to jinak. Protoze Alan Kay v roce 2003 prohlasil, ze vsechny typove systemy ktere zna, jsou moc velky opruz, je to vecna a nezpochybnitelna pravda platna i pro vsechny jazyky budoucnosti a diskuse je zbytecna.

Haskell v té době už existoval a ničím typově sofistikovanějším tu neargumentujete. Ostatně můžete shrnout své dojmy a zeptat se ho, co si o tom myslí dnes. Je to člověk, který by vám i odpověděl, když by viděl, že to má hlavu a patu, narozdíl od většiny českých profesůrků a inžynýrků z všelijakých sorbonn v Horní Dolní, kteří mají dojem, že je pod jejich úroveň na takové dotazy od prostého lidu reagovat.

Podle mě to jsou ale debaty na úrovni andělů na špičce jehly. Navíc působíte dojmem "dílcovou metodou odhadneme rychlost nepřátelského tanku". Sorry jako.

"I thought of objects being like biological cells and/or individual computers on a network, only able to communicate with messages"
- nositel turingovy ceny

"When people who can’t think logically design large systems, those systems become incomprehensible. And we start thinking of them as biological systems.  And since biological systems are too complex to understand, it seems perfectly natural that computer programs should be too complex to understand.
We should not accept this."
-jiný nositel turingovy ceny
A?

Inkvizitor

Re:Co si myslíte o OOP?
« Odpověď #727 kdy: 08. 01. 2019, 17:03:06 »
Ne, je to jinak. Protoze Alan Kay v roce 2003 prohlasil, ze vsechny typove systemy ktere zna, jsou moc velky opruz, je to vecna a nezpochybnitelna pravda platna i pro vsechny jazyky budoucnosti a diskuse je zbytecna.

Haskell v té době už existoval a ničím typově sofistikovanějším tu neargumentujete. Ostatně můžete shrnout své dojmy a zeptat se ho, co si o tom myslí dnes. Je to člověk, který by vám i odpověděl, když by viděl, že to má hlavu a patu, narozdíl od většiny českých profesůrků a inžynýrků z všelijakých sorbonn v Horní Dolní, kteří mají dojem, že je pod jejich úroveň na takové dotazy od prostého lidu reagovat.

Podle mě to jsou ale debaty na úrovni andělů na špičce jehly. Navíc působíte dojmem "dílcovou metodou odhadneme rychlost nepřátelského tanku". Sorry jako.

No tak v prve rade tohle je opravdu normalni pokec a ne vedecka rozprava. Nikdy nikde krome ceskych for jsem ale nevidel, ze by nekdo prisel a en bloc napsal "nemate k tomu co rict, tudiz je debata bezcenna". Na Hacker News napriklad.

No a ta narazka na Haskell je nesmyslna. Kay netvrdi, ze typovy system Haskellu je malo sofistikovany, on se k Haskellu nevyjadruje vubec a je otazka, ktere jazyky skutecne zkousel prakticky pouzivat a co mu vadilo. IMO je proste zvykly fungovat jinak, vypiplal si Smalltalk apod. a v zasade vubec nema motivaci se do neceho "z opacne strany" seriozne poustet. To je pro me cely smysl toho citatu - v dynamickych jazycich se mu dela dobre a uz stejne osobne nebude presedlavat jinam. Pro nikoho dalsiho z toho nic neplyne, je to pratelske poplacani starsiho kamarada, ktery vidi svet jako nekteri dalsi kluci.

Cely ten citat ma psychologicky vyznam, ale argumentacne to nepomaha (je to spis argumentacni faul cesky zvany "dovolavani se autority"). Uplne rozumim tomu, ze zdejsi ucastniky nepovazujes za dostatecne erudovane, ale v takovem pripade je snad lepsi to nechat byt a jit jinam.

SB

Re:Co si myslíte o OOP?
« Odpověď #728 kdy: 08. 01. 2019, 17:05:41 »
A v kterém rozhraní má tedy být uvedena metoda např. pro hmotnost?
Smalltalk SERE na rozhraní či třídy, Smalltalk posílá zprávy, objekt vrací hodnotu, nebo chybu. To je celé!
Tak sem dej kód pro ten batoh, my ti tu pak vysvětlíme, kde děláš ve svém uvažování chybu.

Kód: [Vybrat]
batoh := Bag new.
batoh add: (Kámen ofSize: 10 andWeight: 20).
batoh add: (Sekyrka ofMaterial: #ocel andWeight: 20).
batoh add: (Hovno ofColour: #tmavěHnědá andWeight: 120).

batoh sum: [ :x | x weight ].

"se zohledněním nevhodného prvku"
batoh sum: [ :x | [ x weight ] ifError: [ 0 ] ].

Re:Co si myslíte o OOP?
« Odpověď #729 kdy: 08. 01. 2019, 17:15:05 »
Chapu, ze pristup Go ma svoje vyhody a muze byt prijemny, na druhou stranu zase nevidim zadnou zvlastni komplikaci v tom, ze implementaci interface/traitu musi autor explicitne deklarovat. Typovy system to pozna, prekladac to validuje, prace s tim prakticky zadna neni
No kdyz muze prekladac najit definici traitu kdekoli ve zdrojacich, tak uplne stejne muze najit i ten konflikt, takze to mi uplne jako argument neprijde.

Ale pripomnel jsi mi, ze jednu fakt blbou vlastnost to ma: kdyz interfejs implementuju explicitne, muze mi prekladac ohlasit, ze mi neco chybi, primo na tom miste, kde to chybi. Kdyz je to implicitni, tak mi (v lepsim pripade) oznami na uplne jinem miste, ze pro tuhle strukturu interfejs definovany neni (clovek se drbe na hlave jakto, kdyz pred chvili byl - a pricinu musi hledat uplne jinde nez kde je chyba, prekladac mu s tim nepomuze). Anebo (v horsim pripade) mu to prestane fungovat az v testech (nedej matko prirodo na produkci), protoze se mu ve switchi nenamatchoval interface, pac ho kvuli nejake trivialni chybe najednou neimplementuje :)

Jednou se mi tohle stalo a pekne jsem si trhal vlasy, takze nakonec mas vlastne asi pravdu, zas tak dobra featura to neni. Ten spatnej zazitek muj mozek asi sebezachovne vytesnil ;)

v

Re:Co si myslíte o OOP?
« Odpověď #730 kdy: 08. 01. 2019, 17:21:52 »
Chapu, ze pristup Go ma svoje vyhody a muze byt prijemny, na druhou stranu zase nevidim zadnou zvlastni komplikaci v tom, ze implementaci interface/traitu musi autor explicitne deklarovat. Typovy system to pozna, prekladac to validuje, prace s tim prakticky zadna neni
No kdyz muze prekladac najit definici traitu kdekoli ve zdrojacich, tak uplne stejne muze najit i ten konflikt, takze to mi uplne jako argument neprijde.

Ale pripomnel jsi mi, ze jednu fakt blbou vlastnost to ma: kdyz interfejs implementuju explicitne, muze mi prekladac ohlasit, ze mi neco chybi, primo na tom miste, kde to chybi. Kdyz je to implicitni, tak mi (v lepsim pripade) oznami na uplne jinem miste, ze pro tuhle strukturu interfejs definovany neni (clovek se drbe na hlave jakto, kdyz pred chvili byl - a pricinu musi hledat uplne jinde nez kde je chyba, prekladac mu s tim nepomuze). Anebo (v horsim pripade) mu to prestane fungovat az v testech (nedej matko prirodo na produkci), protoze se mu ve switchi nenamatchoval interface, pac ho kvuli nejake trivialni chybe najednou neimplementuje :)

Jednou se mi tohle stalo a pekne jsem si trhal vlasy, takze nakonec mas vlastne asi pravdu, zas tak dobra featura to neni. Ten spatnej zazitek muj mozek asi sebezachovne vytesnil ;)
mi nějak nedochází jak to funguje, např. mám strukturu x = (y, z), tak pro (f x) se provede (f y) a (f z) a hodnota (f x) se určí jak?

Re:Co si myslíte o OOP?
« Odpověď #731 kdy: 08. 01. 2019, 17:23:37 »
Podle mě to jsou ale debaty na úrovni andělů na špičce jehly.
Tak to ani náhodou. Debata o andělech byla daleko smysluplnější. To jenom dneska si ve své samolibé pýše myslime, že když je někde slovo "anděl", musí to být už z principu zhovadilost, i když o tom vůbec nic nevíme :)

v

Re:Co si myslíte o OOP?
« Odpověď #732 kdy: 08. 01. 2019, 17:26:17 »
"I thought of objects being like biological cells and/or individual computers on a network, only able to communicate with messages"
- nositel turingovy ceny

"When people who can’t think logically design large systems, those systems become incomprehensible. And we start thinking of them as biological systems.  And since biological systems are too complex to understand, it seems perfectly natural that computer programs should be too complex to understand.
We should not accept this."
-jiný nositel turingovy ceny
A?
a ještě Robin Milner dostal turingovu cenu

Re:Co si myslíte o OOP?
« Odpověď #733 kdy: 08. 01. 2019, 17:27:49 »
mi nějak nedochází jak to funguje, např. mám strukturu x = (y, z), tak pro (f x) se provede (f y) a (f z) a hodnota (f x) se určí jak?
https://tour.golang.org/methods/10

SB

Re:Co si myslíte o OOP?
« Odpověď #734 kdy: 08. 01. 2019, 17:36:48 »
No hlavně se vám to ani nepovede, protože ve statickém jazyku bez existence testovaného ani nepřeložíte test.

To je právě účelem prvotního spuštění testu. Nesmí projít. Pokud by náhodou prošel, může to být chybou nebo také příznakem, že jsme hotovi.

Četl jste to pozorně?