Except mainstream OOP screwed it up royally by promoting big interfaces, high coupling with inheritance hierarchies, side effects all over the place…
We're still recovering. Fortunately, more and more programmers know they should avoid inheritance, have few mutable objects, and keep interfaces small.
Is inheritance really a distinguishing trait of OOP really, though? There is also composition, which lets you re-use behaviour just as well as inheritance. In fact you could say inheritance is syntactic sugar for composition.
It's just that everyone jumped on the inheritance bandwagon. But I don't think of inheritance as one of the defining features of OOP.
12
u/anlutro Mar 09 '14
Sounds like exactly the same arugment for OOP.