Re: What databases have taught me

From: Bruno Desthuilliers <onurb_at_xiludom.gro>
Date: Fri, 23 Jun 2006 11:58:33 +0200
Message-ID: <449bbb4b$0$16574$>

JOG wrote:
> Well after a brief hiatus I have just ploughed through the whole 800
> posts of the OO vs RM thread. Some discouraging stuff indeed. Over the
> last few years a study of database technology, helped greatly by
> discussions in cdt, has educated my opinions significantly, and perhaps
> my albeit slow progress can be illuminative to others.
> - I started life as a procedural programmer.
> - I adopted OO and soon got the 'aha' click described by R. Martin.
> - I spent years coding large OO projects, with beautiful, elegant
> architectures.
> - I spent further years practically gnawing my arm off attempting to
> adapt my perfect OO designs as requirements inevitably shifted and
> exceptions arose.
> - I finally realised that my 'aha' was utterly illusionary, and that my
> code, being OO, was inevitably and irrecovably imprisoned in a
> hierarchical strait-jacket
> OO is hierarchy.

May I ask 2 questions here ?
1/ when asserting 'OO is hierarchy', are you talking about type hierarchy or run-time associations between instances ?
2/ which 'OO' languages did you use ?
3/ have you worked on 'non-business' projects (content management, CAD, etc) ?

> Enforcing a hierarchy where none exists is an utterly
> dire and destructive artifice. If one does not recognize this, one is
> etiher wholly uneducated (given that the battle between
> hierarchy/networks and a relationship based models occurred decades
> ago) or has not been involved in enough large scale OO projects. Yet
> still this turgid "chinese doll" approach prevails through Java, C++
> and the bastard child of them all, XML.

OO is not restricted to Java and C++. But I can understand that you feel "imprisoned in a strait-jacket" with these languages. And BTW, I fail to see how XML relates to OO (Java'ers abuse of it set aside, but this is more an issue with Java than with OO IMHO).

> I still code via OO as I currently have no other preferable tools. And
> yes, I still absolutely take pride in my crafted generic OO designs.
> However I now don't waste precious time trying to perfect them, because
> I know they are by definition inflexible, brittle and flawed. So I make
> them lightweight and replacable, aware of the limitations of the
> neanderthal paradigm that we are currently lumped with.

I have this pattern too, somehow. Going over the board with genericity in prevision of changes that are barely previsible is an easy mistake. The design should first deal with the problem at hand, and only then try to flexible where it seems (ie : from experience gathered during the project and previous projects) to makes sens. Now about inflexibility and brittleness, it's something I faced much more with 'rigid' languages like Java than with higher-level, more dynamic languages.

> It really is amazing that IT as a field has so little to do with the
> study of 'Information', of its nature and how it ought be structured
> for optimal manipulation and integrity provision, and so much on a
> 'Technology' fetish.


FWIW, it's (IMHO) partly a case of "worst is better", partly a problem with marketing-addict PHBs, and partly a problem with superstitions relating to silver bullets and whatnot...

> So apologies for the rant, but I find the current status quo very
> frustrating. I can only hope that this situation will change as the
> field matures and hierarchy-where it does not belong finally dies a
> long overdue death.

Hmmm... The fact is that we *also* have to deal with hierarchical data structures, and relational algebra does not really shine here.

My 2 cents.

bruno desthuilliers
python -c "print '_at_'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in 'onurb_at_xiludom.gro'.split('@')])"
Received on Fri Jun 23 2006 - 11:58:33 CEST

Original text of this message