How Well Engineered Are Modern Object Oriented Designs
Object oriented languages dominate the modern programming landscape. The object oriented arrived in the 1960’s with ideas such as data abstraction, polymorphism, and modularization. At this time, procedural languages were the dominant languages. These new ideas were then being applied to the procedural paradigm, leading to full blown object oriented languages.
I recently came across a paper written by Luca Cardelli of Digital Equipment Corporation (DEC) who talks about how these new ideas haven’t been applied to object oriented languages as effectively as to their procedural language predecessors.
Furthermore, Luca argues that object oriented languages have much to learn from the engineering lessons of procedural languages. He says that you need to work harder to produce object oriented designs with well engineered properties than you would when producing procedural designs.
Read the full paper here: Bad Engineering Properties of Object-Oriented Languages (Luca Cardelli)