This article would have needed to define what it mean by object orientation, and then derive comparisons out of that.<p>As it stands, it derives conclusions out of nothing. Lets have a clarifying example:<p>"Object-oriented style is intrinsically less efficient that procedural style. In pure object-oriented style, every routine is supposed to be a (virtual) method. "<p>I'm pretty darn certain no definition of object orientation I've seen have included virtual methods as part of the definition.<p>And another:
Polymorphic:
"Economy of large-scale development. Data abstraction and modularization have methodological advantages for code development. Large teams of programmers can negotiate the interfaces to be implemented, and then proceed separately to implement the corresponding pieces of code. Dependencies between pieces of code are minimized, and code can be locally rearranged without fear of global effects. Polymorphism is important for reusing code modularly."<p>OO:
"Economy of large-scale development. Teams of programmers are often involved in developing class libraries and specializing existing class libraries. Although reuse is a big win of object-oriented languages, it is also the case that these languages have extremely poor modularity properties with respect to class extension and modification. For example, it is easy to override a method that should not be overridden, or to reimplement a class in a way that causes problems in subclasses."<p>Because all know OO people can't talk each other and define APIs. Also, I can't recall anything in any definition of OO that doesn't allow for creating public interfaces or for that matter prohibiting subclassing of certain methods.<p>There are so many straw men in this article that it is downright silly.