My entire OOP experience. Hours of philosophy to create code that doesn’t make sense w/o that philosophy and blows up on a simple structural change due to all the coupling.
Just think about how mindboggling would the complexity of a house design have to be to support rearranging walls at will, including support for plumbing, electrical wiring, etc. That’s a metaphor for OOP’s ideal: everything reusable, everything composable, everything flexible. Everything impossibly complicated and impractical, ha.
One of the OOP obsessions seems to be the idea of universal reusability and interoperability. But just like it is not possible to have a mechanical engine suitable for all: race cars, family minivans, tanks, and helicopters, it’s not possible to have bussiness application designs and even components that can be used in any use-case.
Dynamic Dispatching is the root of all evil
https://www.computerenhance.com/p/clean-code-horrible-performance
You wanted a banana but what you got was a gorilla holding the banana and the entire jungle.

http://xahlee.info/comp/oop.html
https://loup-vaillant.fr/articles/deaths-of-oop
https://dpc.pw/the-faster-you-unlearn-oop-the-better-for-you-and-your-software
https://www.youtube.com/watch?v=QM1iUe6IofM
https://medium.com/codemonday/banana-gorilla-jungle-oop-5052b2e4d588