my comments
There are some things I agree with, and some I don't. First, here are some I agree with:
"OO proponents are not making sense to business. Their programming structures are viewed as an arbitrary kludge [because they are not sticking to OO's roots]."
"In fact, it has been suggested that OO has contributed to IT shops becoming money pits that cannot guarantee results and that confound and complicate the simplest of requirements beyond practical consideration."
This reflects my viewpoint that "OO is popular because it makes consultants rich."
"There is also a view that OO will soon disappear simply through disuse. OO never achieved a dominant position. Most existing code remains non-OO and as time passes, more code is written using script, macro, markup, batch and traditional languages. Even where OO languages are used, they are often used only to create single class modules, which could just as well have been written using traditional languages without the OO overhead."
I am not alone. I might even be part of the "silent majority". (Well, you might question the "silent" part :-)
"I found the programmers quick to understand how OO programming can be used to write tighter and more maintainable code. However, that did not make them use it."
I question this. Is he comparing OO to traditional flat-file COBOL? Is he using polymorphism examples against tree taxonomies? I would love to see his training examples.
Another area I disagree with is his suggestion that business processes should be modeled as real-world interactions. Viewing business applications as "simulations" is problematic. Simulations are to reflect interactions of the "real world" in order to study the real world and improve its flow. Business applications are to achieve something by the best means possible using computers. These two goals are not necessarily the same, nor necessarily result in the same solution. A common example given of this disconnect is that if flight was modeled via real-world simulations of our actual experiences, then airplanes would have wings that flap. Mirroring the real world and getting something done as efficiently as possible are different animals. Sometimes they overlap, but often they don't. The strength and weaknesses of computers are different than those of humans. Thus, to achieve the same task as simple and flexible as possible via computer requires different approaches than achieving it as a human.
I don't really question OO's value in modeling interactions and behaviors of the real world. However, the best techniques for modeling the real world and for making better software are probably not the same. In the real world you must model boats, captains, docks, and paperwork. However, you probably don't need most of these concepts internally in business software (unless your intention is to make a mess).
________________
oop.ismad.com