

Bad engineering properties of oo languages - chemcoder
http://lucacardelli.name/Papers/BadPropertiesOfOO.html

======
yxhuvud
This article would have needed to define what it mean by object orientation,
and then derive comparisons out of that.

As it stands, it derives conclusions out of nothing. Lets have a clarifying
example:

"Object-oriented style is intrinsically less efficient that procedural style.
In pure object-oriented style, every routine is supposed to be a (virtual)
method. "

I'm pretty darn certain no definition of object orientation I've seen have
included virtual methods as part of the definition.

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."

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."

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.

There are so many straw men in this article that it is downright silly.

