Richard Gabriel, author of Worse is Better, gave a talk last November title "Objects have Failed". The talk may be found here. I find this narrative interesting:
Objects, as envisioned by the designers of languages like Smalltalk and Actor - long before C++ and Java came around - were for modeling and building complex, dynamic worlds. Programming environments for languages like Smalltalk were written in those languages and were extensible by developers. Because the philosophy of dynamic change was part of the post-Simula OO worldview, languages and environments of that era were highly dynamic.
But with C++ and Java, the dynamic thinking fostered by object-oriented languages was nearly fatally assaulted by the theology of static thinking inherited from our mathematical heritage and the assumptions built into our views of computing by Charles Babbage whose factory-building worldview was dominated by omniscience and omnipotence.
And as a result we find that object-oriented languages have succumb to static thinkers who worship perfect planning over runtime adaptability, early decisions over late ones, and the wisdom of compilers over the cleverness of failure detection and repair
Now the ironic part: Richard Gabriel, distinguished engineer at SUN
. I find this fascinating. The quote above effectively states that things like Java are part of the problem. And there he is, at Sun.