Sorry I don't agree, one must see OO as the next steps from linear coding, then procedural coding and then OO.<p>OO is about how you should structure your enterprise application according to how God has structured the real world.<p>Only mistakes these OO language did is it's too flexible till developers abuse it by structuring their application according to each developer imaginary world.
Been OOPing for 24 years now. Just picked up a practical functional language about 5 years ago. The difference is night and day and I can see clearly now: OOP causes way more problems than it solves.
What garbage!! Your logic can be applied to plethora of languages and paradigms. Problem seems to do more with culture / process / practices than programming language.