Sorry I don't agree, one must see OO as the next steps from linear coding, then procedural coding and then OO.
OO is about how you should structure your enterprise application according to how God has structured the real world.
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.