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.