Co si myslíte o OOP?

SB

Re:co si myslite o oop?
« Odpověď #135 kdy: 28. 12. 2018, 12:40:04 »
Ono se to k tomu prapůvodnímu účelu - distribuovaným objektům
Právěže to není (jediný) prapůvodní účel. Je to technika, která je prapůvodně úplně normální, žádná exotika: já tomu požadavku nerozumím, předám to někomu, kdo to zvládne zpracovat. Použitelné např. pro skládání obecných objektů, jejichž rozhraní pak nemusím znát.

Stejně tak to respondsToSelector. Chci neznámý objekt uložit do pdf? No tak se ho prostě zeptám, jestli to umí. Fakt to musím komplikovat rozhraním ICanSaveToPDFInAWayYouWouldLike nebo ExtremelyComfortSaveableToPDFObjectFactory?

A o tom to právě je, tyhle techniky nikoho dneska ani nenapadnou. Přitom právě tohle je "to OOP", ne nějaká přiblblá dědičnost.
Jinak další sekundární použití bylo HOM, to se přestalo používat až s příchodem bloků. DO vyšly z módy jako důsledek rozšíření HTTP, takže jediné současné použití je fakt jen ten animátor (to je něco jako doesNotRecognize light, funkčně omezenější, ale zato řádově rychlejší). Ale i to je už skoro historie.

Co je to HOM?

Osobně to vidím, že jste se buďto spletl, nebo Cox ani nelže, ale spíš nerozumí. Delegace je obecně využitelný mechanismus vyplývající z podstaty objektu jako samostatné jednotky.

Co je animátor, nevím (prosím odkaz), ale další využití je nemalé: Mimo zmiňovaných distrib. objektů (i přes váš názor při komunikaci samostatných objektových systémů (klient-obj. DB, objektoví peers, ...) stále potřebné) např. zmiňovaná proxy, stub, implementace universálního náv. vzoru Nil, vzorů Fasáda, Adaptér.


BaldSlattery

Re:co si myslite o oop?
« Odpověď #136 kdy: 28. 12. 2018, 13:20:45 »
Co je to HOM?

Cox ani nelže, ale spíš nerozumí. Delegace je obecně využitelný mechanismus vyplývající z podstaty objektu jako samostatné jednotky.

Co je animátor, nevím (prosím odkaz)
HOM je posílání zpráv vyššího řádu (higher order messaging).

Cox je autorem ObjC, takže mu celkem rozumí. Nicméně řec vůbec nebyla o delegaci.

Animator je - přísně vzato - metoda některých tříd GUI vracející proxy animující změny některých vlastností: https://developer.apple.com/documentation/appkit/nsanimatablepropertycontainer/1530511-animator?language=objc

Kit

Re:Co si myslíte o OOP?
« Odpověď #137 kdy: 28. 12. 2018, 13:21:30 »
Na devel.cz se tazatel ptal na zbytečnost testu. Odpověděl jsem mu, že je zbytečná celá třída a napsal k tomu náhradu na dva řádky. Byl jsem zavalen mínusy, hlavně kvůli tomu, že jsem odpověděl jinak, než se očekávalo. Budiž. Zároveň je z toho vidět, že když osekám třídu tak, že z ní nic nezbyde, tak se to nehodí do mantry OOP.
Tie minusy si tam dostal pre t, ze namiesto odpovede na otazku si zacal trollovat.
A hlavne nevies ci je ta treda zbytocna lebo nepoznas kontext a hlavne tvoje vedomosti z programovania su dost obmedzene na PHP a male one man show projektiky.

Takže velký projekt poznám podle toho, že používá uměle nafouklé třídy?

Re:Co si myslíte o OOP?
« Odpověď #138 kdy: 28. 12. 2018, 13:33:40 »
Na devel.cz se tazatel ptal na zbytečnost testu. Odpověděl jsem mu, že je zbytečná celá třída a napsal k tomu náhradu na dva řádky. Byl jsem zavalen mínusy, hlavně kvůli tomu, že jsem odpověděl jinak, než se očekávalo. Budiž. Zároveň je z toho vidět, že když osekám třídu tak, že z ní nic nezbyde, tak se to nehodí do mantry OOP.
Tie minusy si tam dostal pre t, ze namiesto odpovede na otazku si zacal trollovat.
A hlavne nevies ci je ta treda zbytocna lebo nepoznas kontext a hlavne tvoje vedomosti z programovania su dost obmedzene na PHP a male one man show projektiky.

Takže velký projekt poznám podle toho, že používá uměle nafouklé třídy?

Ne. Ale vzhledem ke sve omezene zkusenosti nepoznas, kdy je neco umele nafoukle.

Re:co si myslite o oop?
« Odpověď #139 kdy: 28. 12. 2018, 14:25:31 »
...Ve skutečném světě je ale spousta jevů, kde žádné identity neexistují a vznikají všelijaké ad-hoc shluky jevů a vlastností (triviální příklad jsou třeba korály nebo shluky nějakých bakterií, kde výraz "jedinec" moc nedává smysl, tím spíš jedinec, který by měl být "věšákem na vlastnosti")...

Při všem respektu k vám je tohle jen vaším nedostatkem fantazie - cokoliv, co jde pojmenovat nebo popsat, jde i modelovat, a to i věci abstraktní.
Tady jde asi o nedorozumění. Neřekl jsem, že to "nejde modelovat", ale že naše obvyklé "substanční" modely jsou pro spoustu jevů reálného života neadekvátní. Kdyby to ti, kdo je používají, věděli a skromně přiznávali, tak by to bylo ok. Ale když se začnou tvářit, že jejich model je tak dobrý, že to snad ani není model, ale ontologie (vystihuje samou podstatu toho, jaký svět je), je to průser.

Příklad:

AFAIK, v ranných fázích vývoje je lidský zárodek shluk buněk, přičemž se může stát, že část tohodle shluku se utrhne a vznikne z něj samostatný jedinec (jednovaječná dvojčata) nebo naopak se vyvíjí dva oddělené shluky, vypadá to na dvojčata, ale pak se z ničehožnic shluky spojí a je z toho ve finále jeden člověk.

Pokud tenhle děj budu chtít modelovat, nemůžu říct, že tam je jedna nebo dvě entity (na které věším vlastnosti), nemůžu určit přesný okamžik, kdy se z jedné staly dvě ani ze dvou jedna. Ani moc nevíme, jak bysme měli vlastnosti dvou splynuvších jedinců mergovat a naopak.

Laicky mám za to, že to je důsledek aristotelismu, který nám pomáhá a zároveň háže klacky pod nohy dodnes. Umíme dobře pracovat se "substancí" a "akcidenty" (i když tomu tak dneska neříkáme), ale moc neumíme konceptualizovat plynulé, těžko definovatelné změny, které mají kvalitativní/ontologickou povahu.


Kit

Re:Co si myslíte o OOP?
« Odpověď #140 kdy: 28. 12. 2018, 14:26:28 »
Na devel.cz se tazatel ptal na zbytečnost testu. Odpověděl jsem mu, že je zbytečná celá třída a napsal k tomu náhradu na dva řádky. Byl jsem zavalen mínusy, hlavně kvůli tomu, že jsem odpověděl jinak, než se očekávalo. Budiž. Zároveň je z toho vidět, že když osekám třídu tak, že z ní nic nezbyde, tak se to nehodí do mantry OOP.
Tie minusy si tam dostal pre t, ze namiesto odpovede na otazku si zacal trollovat.
A hlavne nevies ci je ta treda zbytocna lebo nepoznas kontext a hlavne tvoje vedomosti z programovania su dost obmedzene na PHP a male one man show projektiky.
Takže velký projekt poznám podle toho, že používá uměle nafouklé třídy?
Ne. Ale vzhledem ke sve omezene zkusenosti nepoznas, kdy je neco umele nafoukle.

Předpokládám, že velké projekty by měly dodržovat zásady SOLID. Uvedený příklad je porušuje.

SB

Re:co si myslite o oop?
« Odpověď #141 kdy: 28. 12. 2018, 16:18:47 »
Citace
Under no circumstances should you call the method on the proxy itself since it will be intercepted again by the invocation handler and you will be faced with a StackOverflowError.
https://blog.frankel.ch/the-power-of-proxies-in-java/

Znamená to, že ten objekt nesmí mít jinou metodu než invoke? To by bylo docela hloupý.

Co jsem na to koukal a testoval, tak to funguje tak, že každý zastupovaný objekt je zastoupen vždy vlastní instancí (té samé) třídy Proxy, což je jakýsi bastard, který díky neznámé magii (hacku?; souvisí s @CallerSensitive?) nespouští danou metodu, ale údaje o volání vždy předává na navěšený nadefinovaný handler. Tento handler VŽDY spouští metodu invoke, která následně může volat další metody uvedené v něm, ale samy vybrány a spuštěny nejsou.

Celý postup definice a vytvoření proxy má k jednoduchosti ze Smalltalku hodně daleko (koneckonců jako celá reflexivita v Javě), samotná třída Proxy neumožňuje specializaci s překrytím části pro handler či metodu řešící "zprávu", což situaci ještě zhoršuje.

SB

Re:co si myslite o oop?
« Odpověď #142 kdy: 28. 12. 2018, 16:48:53 »
Cox je autorem ObjC, takže mu celkem rozumí. Nicméně řec vůbec nebyla o delegaci.

Animator je - přísně vzato - metoda některých tříd GUI vracející proxy animující změny některých vlastností: https://developer.apple.com/documentation/appkit/nsanimatablepropertycontainer/1530511-animator?language=objc

Je-li delegací jakékoliv předávání požadavku dalšímu objektu, pak je to i předávání zpráv, kterým objekt nerozumí.

Animátor znamená objekt, který zajišťuje provedení nějaké zvolené posloupnosti změn jiného objektu v času? Chápu to správně? Pak se jedná spíše o adaptér.

SB

Re:co si myslite o oop?
« Odpověď #143 kdy: 28. 12. 2018, 17:05:09 »
Tady jde asi o nedorozumění. Neřekl jsem, že to "nejde modelovat", ale že naše obvyklé "substanční" modely jsou pro spoustu jevů reálného života neadekvátní. Kdyby to ti, kdo je používají, věděli a skromně přiznávali, tak by to bylo ok. Ale když se začnou tvářit, že jejich model je tak dobrý, že to snad ani není model, ale ontologie (vystihuje samou podstatu toho, jaký svět je), je to průser.

Příklad:

AFAIK, v ranných fázích vývoje je lidský zárodek shluk buněk, přičemž se může stát, že část tohodle shluku se utrhne a vznikne z něj samostatný jedinec (jednovaječná dvojčata) nebo naopak se vyvíjí dva oddělené shluky, vypadá to na dvojčata, ale pak se z ničehožnic shluky spojí a je z toho ve finále jeden člověk.

Pokud tenhle děj budu chtít modelovat, nemůžu říct, že tam je jedna nebo dvě entity (na které věším vlastnosti), nemůžu určit přesný okamžik, kdy se z jedné staly dvě ani ze dvou jedna. Ani moc nevíme, jak bysme měli vlastnosti dvou splynuvších jedinců mergovat a naopak.

Laicky mám za to, že to je důsledek aristotelismu, který nám pomáhá a zároveň háže klacky pod nohy dodnes. Umíme dobře pracovat se "substancí" a "akcidenty" (i když tomu tak dneska neříkáme), ale moc neumíme konceptualizovat plynulé, těžko definovatelné změny, které mají kvalitativní/ontologickou povahu.

Nejdříve je třeba říci, že model je zjednodušením, kdy modeluju jen to, co mi stačí (a i to můžu zprasit - běžný to jev). Vytvořím-li dokonalý model modelující vše, bude nutně zcela identický se vzorem, pak ale nemá smysl vytvářet model, použiju originál.

U vašeho modelu zárodku je třeba především rozmyslet, co chcete modelovat, máte na výběr různou granularitu od dělení genetické informace přes buňky až po celé chuchvalce, záleží, k čemu to bude.

Poslední myšlenka je hlubší než moje duševní schopnost.

BaldSlattery

Re:co si myslite o oop?
« Odpověď #144 kdy: 28. 12. 2018, 18:23:26 »
Cox je autorem ObjC, takže mu celkem rozumí. Nicméně řec vůbec nebyla o delegaci.

Animator je - přísně vzato - metoda některých tříd GUI vracející proxy animující změny některých vlastností: https://developer.apple.com/documentation/appkit/nsanimatablepropertycontainer/1530511-animator?language=objc

Je-li delegací jakékoliv předávání požadavku dalšímu objektu
Ale to (v OOP) není.

BaldSlattery

Re:co si myslite o oop?
« Odpověď #145 kdy: 28. 12. 2018, 18:24:30 »
Cox je autorem ObjC, takže mu celkem rozumí. Nicméně řec vůbec nebyla o delegaci.

Animator je - přísně vzato - metoda některých tříd GUI vracející proxy animující změny některých vlastností: https://developer.apple.com/documentation/appkit/nsanimatablepropertycontainer/1530511-animator?language=objc

Animátor znamená objekt, který zajišťuje provedení nějaké zvolené posloupnosti změn jiného objektu v času? Chápu to správně? Pak se jedná spíše o adaptér.
Je to jen proxy udělaná pomocí forward, viz dokumentace.

Youda

Re:co si myslite o oop?
« Odpověď #146 kdy: 28. 12. 2018, 22:23:56 »
Tady jde asi o nedorozumění. Neřekl jsem, že to "nejde modelovat", ale že naše obvyklé "substanční" modely jsou pro spoustu jevů reálného života neadekvátní. Kdyby to ti, kdo je používají, věděli a skromně přiznávali, tak by to bylo ok. Ale když se začnou tvářit, že jejich model je tak dobrý, že to snad ani není model, ale ontologie (vystihuje samou podstatu toho, jaký svět je), je to průser.

Příklad:

AFAIK, v ranných fázích vývoje je lidský zárodek shluk buněk, přičemž se může stát, že část tohodle shluku se utrhne a vznikne z něj samostatný jedinec (jednovaječná dvojčata) nebo naopak se vyvíjí dva oddělené shluky, vypadá to na dvojčata, ale pak se z ničehožnic shluky spojí a je z toho ve finále jeden člověk.

Pokud tenhle děj budu chtít modelovat, nemůžu říct, že tam je jedna nebo dvě entity (na které věším vlastnosti), nemůžu určit přesný okamžik, kdy se z jedné staly dvě ani ze dvou jedna. Ani moc nevíme, jak bysme měli vlastnosti dvou splynuvších jedinců mergovat a naopak.

Laicky mám za to, že to je důsledek aristotelismu, který nám pomáhá a zároveň háže klacky pod nohy dodnes. Umíme dobře pracovat se "substancí" a "akcidenty" (i když tomu tak dneska neříkáme), ale moc neumíme konceptualizovat plynulé, těžko definovatelné změny, které mají kvalitativní/ontologickou povahu.

Nejdříve je třeba říci, že model je zjednodušením, kdy modeluju jen to, co mi stačí (a i to můžu zprasit - běžný to jev). Vytvořím-li dokonalý model modelující vše, bude nutně zcela identický se vzorem, pak ale nemá smysl vytvářet model, použiju originál.

U vašeho modelu zárodku je třeba především rozmyslet, co chcete modelovat, máte na výběr různou granularitu od dělení genetické informace přes buňky až po celé chuchvalce, záleží, k čemu to bude.

Poslední myšlenka je hlubší než moje duševní schopnost.

Jakozto absolvent Kybernetiky u Marika mam nejake matne tuseni o modelovani a o Teorii systemu.
Vasi debatu ctu s uzasem.
Jsou tyto vase texty mysleny jako variace na pividku Woodyho Allena: "Kdyby byli impresioniste dentisty", nebo jste ozrali?

Re:co si myslite o oop?
« Odpověď #147 kdy: 29. 12. 2018, 06:09:34 »
Nejdříve je třeba říci, že model je zjednodušením, kdy modeluju jen to, co mi stačí (a i to můžu zprasit - běžný to jev). Vytvořím-li dokonalý model modelující vše, bude nutně zcela identický se vzorem, pak ale nemá smysl vytvářet model, použiju originál.

U vašeho modelu zárodku je třeba především rozmyslet, co chcete modelovat, máte na výběr různou granularitu od dělení genetické informace přes buňky až po celé chuchvalce, záleží, k čemu to bude.
Míjíte se s tím, co se snažím říct. Podstata sdělení je v tom příspěvku, který jste citoval, líp ji asi nevyjádřím:

Ne, o výkon nejde, spíš mě štve, jakým způsobem OOP strukturuje uvažování. V době největšího OOP-hypu se OOP vydávalo ne za model reality, ale tvářilo se, že má téměř ontologickou povahu. Tj. v knížkách se podvědomě sugerovala představa, že svět JE takový (má takovou strukturu), jak ho OOP modeluje. Tedy že OOP je vlastně "přirozený". A to je strašně destruktivní iluze.

Re:co si myslite o oop?
« Odpověď #148 kdy: 29. 12. 2018, 06:11:10 »
Jsou tyto vase texty mysleny jako variace na pividku Woodyho Allena: "Kdyby byli impresioniste dentisty", nebo jste ozrali?
Konstruktivnější reakce (co konkrétně se ti nezdá, nebo čemu nerozumíš) by pro debatu byla cennější.

I/O

Re:co si myslite o oop?
« Odpověď #149 kdy: 29. 12. 2018, 11:22:26 »
Jsou tyto vase texty mysleny jako variace na pividku Woodyho Allena: "Kdyby byli impresioniste dentisty", nebo jste ozrali?
Konstruktivnější reakce (co konkrétně se ti nezdá, nebo čemu nerozumíš) by pro debatu byla cennější.
https://www.youtube.com/watch?v=8Z-YjkS2wzI