Object orientation is a very nice tool when doing system analysis and design. It's nifty to have small thingies (objects) that you can shuffle around on table, give attributes and behaviour.
in reply to Object Orientation is:
But when I sit down to actually write the code? No thanks! Object orientation gives you bloated syntax, tries to force you to behave with regards to coding standards etc without giving something in return.
What's needed is discipline and standards. Don't expose every sub, var etc to the world, don't change interface every release cycle, etc etc etc. Have a consistent naming scheme for subs and vars. Think before you type, don't reinvent the wheel and Keep It Simple, Stupid.
None of these things is automagically taken care of by a OO-language. So I really don't see the point in using one.
If OO was the answer, shouldn't apps written in a OO-languages have fewer bugs, less maintainence headache, quicker adoption of coolest-feature-of-the-day?