What's the Point of OOP? (2008)
stackoverflow.com
stackoverflow.com
But when people glorify OOP, they are usually focused on highlighting polymorphism — and that is when the “king has no clothes”.
Outside somewhat narrow usecases, polymorphism is often overrated. Even when functionally possible in OOP, there could be huge performance impacts of a simple change like changing an array to linked list.
The “traits” approach used in Rust (and others) is much more practical.
With my team, any code we touch, the parent callers need to be regression tested.
It gets to a point where simply copying and pasting code then refactoring is the better way.