Objects are fine, but nesting them or endless inheritance is complete garbage. I shouldn't have to dig through 10 levels of inheritance trying to figure out which overload of a method is actually being called. Zend and by extension Magento are terrible at this. The later tried to make the core functionality extensible by non-programmers via an awful XML plugin language. By the time that was done being applied a view model could be any of about 20 similarly (or even identically) named things.