Lost & Found OO

Lost & Found OO

The story of OO until today is both depressing and promising at the same time. The clue of the whole story is minimizing complexity. The story began somewhere in 1960’s (or a bit earlier) in Norway. They developed SIMULA programming language. This language was aimed at creating simulation modes. Simula (as far as I know) hade the idea of class and object, that had services and their internal implementation. This 2-layer implementation reduces complexity and facilitated a close and easy real world models.

Second step was the Xerox ParcPlace project and the down of Smalltalk. Alan Kay and his colleagues hade strong influence from Simula. They created a language that made possible to create a program with very natural mapping to reality – call simulation. The model behaved like the real word – but abstracts such. At the change on the decade from 1980’s to 1990’s the OO –programming had extended to design and analysis. This meant a breakthrough of the real OO. The pioneer both Grady Booch and Peter Coad wrote about the quality change from functional decomposition to objects collaboration. This meant a magnitude size simplification into the model itself. This is how far we reached on this road. Then economical climate went though rapid change – first exploration and then dramatic collapse. These change with the emerge of internet destroyed the small masse of intelligence that hadn’t grown to critical size yet. The change from Smalltalk to it fake copy called Java corrupted the implementation possibilities. The expansion of the usage of Java did not have any possibility to carry on the fundamental and complex change in thinking and a lot of people started to use Java in the way they had used 3GL such as Pascal and especially C. This started to muddy the water of the originally so clear and refreshing spring on OO. These people did not know and/or understand the crucial principles of OO behind the languages. Then these people go into trouble using these languages in a wrong way. There were attempts to ease their path to OO. One most sad example was Ivar Jacobsson “use cases”. This actually mislead people more by telling that OO is ease after all and NOW I can understand this. Peter Coad wrote a column in JOOP abut this named: “Use Cases considered harmful”. This article is still completely valid. When OO started to gain momentum came the next hit. This time it came from legacy people. They had a big need to emphasis the they are not obsolete and OO is not actually nothing new. This group introduce once again the concept of component and then they started to claim that their old C or Cobol applications had as components as objects . Of course this was completely untrue, but there were a lot of people in the field that had different kind of interests to support this fake.

The next blow came from unexpected direction and was called pattern. Patterns as such are actually a good thing in principle but at the same time they are very tricky thing. The sad thing about the Gang of Four book was that It transferred the focus to small detain on GU and not to domain implementation where it should have definitely gone.Now the idea and focus of simulation model representing the complexity minimum shortcut from reality to model was lost. The idea of object encapsulation still remain but was substantially weekend.

Then came the web bubble that pursted and a lot of experienced knowledge disappeared. The final los happened when for some reason OO was too complicated to attract older people with functional decomposition and relational db background all OO aspects were denied. This way even as people use OO languages they actually have degenerated to two layer architectures with “main program” and the behavior that should have been constructed as collaboration of object with characteristics and behavior borrowed directly from reality they diminished just a representatives of a row in a relational database. Now processes and SOA with their stateless services and “orchestration” is exactly this.

One couldn’t come further from Booch’s and Coad’s OO that this –actually nothing is left.

The genuine OO with logical 3-tier architecture and a clear separation of application ( ie. user workflows) and domain logic is in the absolute minimum of the solution space for all behavior that is equivalent with deterministic Turing machine. I hope that we are near that day when the lost treasure is found again.

See: Grady Booch: Object oriented design Second edition p: 16-20 ? and

Peter Coat Object Oriented Analysis chapter 1.3. Analysis Methods (p: 18 -36)


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: