Co si myslíte o OOP?

Martin

Re:co si myslite o oop?
« Odpověď #15 kdy: 23. 12. 2018, 10:40:01 »
Cargo kult. Tedy aspon v nasi firme.
nejake vtipne detaily z nataceni mas?
Implementace C interface (exportovane funkce z DLL/SO), kazda funkce vypada takto:
int "C" DELEJ_NECO(void *p,<...>)
{
   CONTEXT_CLASS *pc = (CONTEXT_CLASS *)p;
   return pc->delej_neco(<...>);
}
kde CONTEXT_CLASS je sice trida, ale pouziva se jen jako struct, nemame virtualni/override metody, nepouzivame vyjimky (kvuli problemum s C++ runtime na nekterych platformach). Nevyuziva se tedy zadna vyhoda C++, ale je to C++ s objekty.
Vlastni C++ metody jsou kratke, mnohem prehlednejsi by bylo dat implementaci primo do DELEJ_NECO().
Mam v ruce kladivo a tak je vsechno hrebik :-)


JSH

Re:co si myslite o oop?
« Odpověď #16 kdy: 23. 12. 2018, 11:11:54 »
OOP je sprosta, skodliva a necitliva antropomorfizace pocitacu!

Pryc s ni. #MEETOOP!

to je celkem vtipny komentar, ale proc antropomorfizace???
objekt neni nijak zavisly na lidskych vlastnostech, objekt je proste jen nejaka struktura.
i mimozemstani muzou klasifikovat veci a objekty.
Myslím že tuším, co má na mysli. V původním OOP (třeba Smalltalk) jsou objekty něco, co přijímá požadavky a nějak je řeší. Těm objektům se nevolají přímo metody ale posílají jim zprávy, co je třeba udělat. Myslím, že daleko lepší název by byl "service" nebo možná i "actor" něco podobného. Na rozdíl od Javovských objektů jsou ty Smalltalkovské daleko autonomnější.
Je tam opravdu velký rozdíl mezi normálními a OOP objekty. Třeba "cihla" není moc dobrý OOP objekt a posílat jí nějakou zprávu dává smysl jen v jazyce který nic jiného neumožňuje.

petersonoop

Re:co si myslite o oop?
« Odpověď #17 kdy: 23. 12. 2018, 11:26:15 »
Polymorfizmus je celkom performance hit

Kit

Re:co si myslite o oop?
« Odpověď #18 kdy: 23. 12. 2018, 11:48:16 »
Polymorfizmus je celkom performance hit

Právě naopak. S masivním využitím polymorfismu se mé skripty nejen zpřehlednily, ale i zrychlily.

balki

Re:co si myslite o oop?
« Odpověď #19 kdy: 23. 12. 2018, 11:57:20 »
OOP je nastroj, bud ho pouzijes dobre, nebo blbe.
OOP neni svaty gral.

lubim ta  :-*. tesat do kamena.


petersonoop

Re:co si myslite o oop?
« Odpověď #20 kdy: 23. 12. 2018, 12:19:28 »
Polymorfizmus je celkom performance hit

Právě naopak. S masivním využitím polymorfismu se mé skripty nejen zpřehlednily, ale i zrychlily.
No ty teda dobre trepes :)

Bacsa

Re:co si myslite o oop?
« Odpověď #21 kdy: 23. 12. 2018, 12:24:14 »
Jenom to nejhorsi :)
Preco to najhorsie?
Prýmek je místní übertroll.

CoffeeMan

Re:co si myslite o oop?
« Odpověď #22 kdy: 23. 12. 2018, 12:31:33 »
Já se teda domnívám, že OOP byl a je pěkný xindl. A to se dala Jásiru Arafatovi ještě Nobelova cena míru.  8)

dobry, ale tady se diskutuje Object Oriented Programing a ne rucnikari.

A co když v OOP mají programátory, kteří dělají OOP? ???

Re:co si myslite o oop?
« Odpověď #23 kdy: 23. 12. 2018, 12:45:29 »
Dle mého dává smysl u velkých monolitických oblud. Pokud máte microservices, už to žádné velké benefity nemá.
Zase to tam není složité, takže lze použít i tam. Pokud tu monolitickou zrůdu rozmlátíte na kousky, taky nemusí být objektová.

Preferuju všechno rozsekané na malé kousky :) pak je mi naprosto jedno v čem to je napsané.
„Řemeslo se naučí každý. Umění nikdo.“
„Jednoduchost je nejvyšší úroveň sofistikovanosti.“
- Leonardo Da Vinci

petersonoop

Re:co si myslite o oop?
« Odpověď #24 kdy: 23. 12. 2018, 12:49:07 »
Ja pracujem na projekte kde oop je dost zastupene a tolko abstrakcie som este nikde nevidel a mam pocit, ze je to niekedy az prekomplikovane a uplne zbytocne.

Kadet

Re:co si myslite o oop?
« Odpověď #25 kdy: 23. 12. 2018, 12:50:54 »
Dokazal byste nekdo nadefinovat oop? Lidi se tu ztraci v semantice.

ldj

Re:co si myslite o oop?
« Odpověď #26 kdy: 23. 12. 2018, 12:51:13 »
Dle mého dává smysl u velkých monolitických oblud. Pokud máte microservices, už to žádné velké benefity nemá.
Zase to tam není složité, takže lze použít i tam. Pokud tu monolitickou zrůdu rozmlátíte na kousky, taky nemusí být objektová.

Preferuju všechno rozsekané na malé kousky :) pak je mi naprosto jedno v čem to je napsané.
Monolit neni antipattern :) A nejsou microservices vicemene OOP prevedene do distribuovaneho systemu service(object) a zasilani zprav? :)

Re:co si myslite o oop?
« Odpověď #27 kdy: 23. 12. 2018, 13:07:22 »
Preco to najhorsie?
Ma oop za nasledok zhorsenie performance aplikacie? Ak teda zoberiem c# a javu do uvahy, tak o oop nemozno hovorit, len o akomsi napodobneni.
Myslel jsem to "mainstream OOP" (C++, Java apod.)

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.

Už samotný modelování světa jako množiny jakýchsi (ontologických) entit, které mají jakési vlastnosti, je problematické. Je založeno na tom, že existuje jakási "prázdná identita", která je potom "věšákem na vlastnosti". 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").

Ale ok, tohle ještě beru, že je 1. celkem užitečný model 2. ve většině případů to funguje uspokojivě 3. víceméně to opdovídá tomu, jak si běžně svět konceptualizujeme.

Zásadní problém je ale v tom, že "mainstream OOP" příšerně zfetišizovalo dědičnost. Vytvořila se představa, že pojmy (nedejmatkopřírodo dokonce ty ontologické entity) tvoří hierarchii danou množinami vlastností individuí. A protože lidi uvěřili, že to je tak "přirozeně", začali se snažit pojmy (nedejmatkopřírodo entity) do těch hierarchií rvát. Na sílu. A z toho pak plynou ty dementní nekonečné debaty, jestli má čteverec dědit z obdélníka nebo naopak. Totální ztráta času. Evidentní střelení se do nohy.

Naštěstí se tahle debilita časem trochu utlumila a modernější přístup je spíš skládání vlastností bez potřeby hierarchizace (mixiny, interfejsy apod.). To je daleko lepší přístup, který nevede k nesmyslným slepým uličkám, kde se jazyk zabývá víc sám sebou než tím, co by měl řešit. A btw, je to návrat ke kořenům, protože původní OOP dědičnost nefetišizovalo, AFAIK.

Kiwi

Re:co si myslite o oop?
« Odpověď #28 kdy: 23. 12. 2018, 13:07:40 »
Dokazal byste nekdo nadefinovat oop? Lidi se tu ztraci v semantice.
Ne. Každý si pod tím představuje trochu něco jiného. Pro mě to je to, co tím mysleli otcové-zakladatelé, tj. Alan Kay a spol.

Re:co si myslite o oop?
« Odpověď #29 kdy: 23. 12. 2018, 13:18:31 »
Ne. Každý si pod tím představuje trochu něco jiného. Pro mě to je to, co tím mysleli otcové-zakladatelé, tj. Alan Kay a spol.
Tomu se dneska (bohužel) říká spíš "agentní systém" nebo "actor model".