4 ms·
I can't agree enough. What other paradigm is so regularly implemented in a way that makes doing it poorly easy(Inheritance), doing it well hard(Composition), an
by quaunaut 3y ago
I can't agree enough. What other paradigm is so regularly implemented in a way that makes doing it poorly easy(Inheritance), doing it well hard(Composition), and requires a list of caveats so large that it effectively draws down to "only use it in these specific places"?
How does a paradigm like that survive? I might be a fan of functional, but I'm not even saying go that way- stay procedural! Learn your abstractions over time and only build them when necessary.
- mcbishop 3y agoVBA's OOP doesn't have inheritance, so I had to use composition. Now I understand that the constraint resulted in better code.
- AnimalMuppet 3y agoHow do implementations of OO make inheritance easier than composition?
- deleted 3y ago[deleted]
- BeetleB 3y agoI think the refrain has more to do with inheritance being heavily promoted as the reason for doing OO in the early 90's till the mid 00's. I believe even Bjarne Stroustrup said if you're not doing inheritance, it's not OO and you should stick to C. Also, while one can do composition about as easily as inheritance, it still has its warts in languages like C++. If you want to unit test code, it's recommended to use dependency inversion instead of regular composition - there are other good reasons to do DI as well. But when you start coding the same stuff in non-OO paradigms, you realize that it's just much easier - stuff like DI was popularized to get around the flaws of the OO implementation in those languages. The same goes for most OO design patterns.
- quaunaut 3y agoThe number of languages that only support Inheritance and have no version of Composition(or severely compromised versions) is long. What's funny is how many of them make it easier to perform composition as long as you avoid the `class` keyword.
- _a_a_a_ 3y ago> doing it well hard(Composition), suggest how this may be fixed > and requires a list of caveats so large that it effectively draws down to "only use it in these specific places"? I don't recognise this, can you explain please
- nesarkvechnep 3y agoDesign patterns
- _a_a_a_ 3y agoIIRC OO is a design pattern. Just happens many langs support it directly.
- deleted 3y ago[deleted]
- quaunaut 3y ago> suggest how this may be fixed Only allow composition. Allow composition techniques to add state, detect the presence of other composition types, etc.
- deleted 3y ago[deleted]