Found an interesting and lengthy Object Orientation backlash. With the view on what an OO advocate is supposed to think presented in the article, the author has an easy case to make, and the basic claim that OO is not the optimal language for ALL problems is obvious.
When that is said and done, I think the author would have a better case in recognizing the cases where object orientation DOES make all the sense in the world, and furthermore in recognizing the importance that OO is capable of having when programming in the large. An initiative like .NET is not as easy to conceive of without a good object environment. Well yes, you can - it's called C, Unix, scripting languages and a compiler - but objects are eminently practical constructs if you want to hide traversal of a process or machine boundary from your local programming environment.
Furthermore, the author - correctly IMO - argues from the assumption that the true productivity enhancing feature of a programming system is how well the programming system is at emulating the features of our built-in natural language processing system, and the accompanying world modeling. The true measure of programming environment sophistication should be how many of the abstraction constructs we live by it is able to support, and how well it supports them. The parody of OO (dogmatic "OO analysis and design" in the spirit of 300 man teams) that is criticized sacrifices all the flexibility of the basic OO ideas in this regard by enforcing very strict 'rules of speech', in the form of lengthy and complex development guidelines, and that is just not very liberating.
It is not really efficient debunking of anything to remark that there are other routes to flexibility than OO. This is hardly surprising. I have the same feeling the author has about OO about the use of UML to describe a lot of things. I like a few of the diagrams for specific descriptive tasks and use them for that, but I would hate to build a system entirely from UML, or indeed to model solely with UML.
However arguing against the power of OO to flexibly interpret the verb part of sentences based on the types and model theory of the noun parts of the sentence seems ludicrous. The claim that plain old procedural languages do this just as well is just not true. The notion that verb parts of sentences should not be typed (there's a comment about 'a + b' not being a method on either a or b) is absurd. Clearly the type of a and b matters a great deal in the interpretation of 'a + b' and this is not JUST a matter of typing, since the interpretation of verb parts of sentences -also in natural languages - can rely both on type and instance data. The 'framing problem' in the semantics of natural language is all about type and instance dependencies in natural language.