Dataless Objects Considered Harmful. (Communications of the ACM, 2005)
This article reports that novice computer programmers should be taught the value of faithfully representing objects and multiple programming paradigms. There are at least four main reasons for doing so. First, procedure-oriented (PO) programming is not simply about writing procedures or functions but about the stepwise refinement of functional decomposition and disciplined practices toward programming. In solving sophisticated business problems, objects don't communicate in a program without a main procedure, whereby the business process is faithfully and structurally executed. A main procedure is not only the client of the various business objects, it can also be the client of the methods that address the functional decomposition of a business process, regardless of whether these methods are standalone or grouped in dataless classes. Second, a real-world problem may be inherently PO. Third, it is a fact that inheritance is computationally costly. Therefore, even for problems that can be represented in either way, developers often choose the PO approach over performance or complexity concerns, as often seen in real-time application.