Has OO really won the battle.

I spend much of my time teaching OO. While it seems that modern programming languages are all about object orientation, how many developers are really embracing OO design?

In his article on getter eradication Martin Fowler says:

The OO community may have ‘won’ in the sense that modern languages are dominated by objects, but they are still yet to win in that OO programming is still not widely used.

This really struck a chord with me and also related to a post of Kevin Rutherfords on getting back to basics.

I can think of a few groups of people who fail to apply OO principles for differing reasons.

  1. The “functional programming works” crowd – I have worked with C programmers who are willing to accept bits of C++ syntax but believe firmly that OO does not work.
  2. The “pure OO is for small talk” crowd – I remember being told in a coding dojo that, while a domain entity certainly had both state and behaviour, it would be inappropriate to represent it with a class as this was JAVA and not Smalltalk. I find it difficult to understand this approach.
  3. The design according to technology crowd – there are technologies that can lead developers away from OO. Service oriented architecture seems at first glance to encourage design in terms of functions offered. I have, I hasten to add, no problem with SOA as a facade to a clean object model.

Unfortunately when trying to advocate the proper application of OO there is a stumbling block. Few organisations have managed to achieve the promised reuse that OO was supposed to bring.

In response all I can say is that OO makes my life as a developer easier. I can concentrate on one thing. Once a class is tested I can largely forget about it. Finally the object community have provided me with a recipe book to achieve design level reuse.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Where am I?

 

May 2012
M T W T F S S
« Jan    
 123456
78910111213
14151617181920
21222324252627
28293031