Re: What databases have taught me
Date: 23 Jun 2006 08:00:37 -0700
> - 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
> - 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
A little startling to read such a succinct summary of my own professional progression! I appear to have finally acquired some sense, and am actively pursuing further understanding of relational theory, functional programming, proper type systems (Martin-Lof, Haley-Milner), and practical formalisms (of which Alloy appears to be the best).
> OO is hierarchy. Enforcing a hierarchy where none exists is an utterly
> dire and destructive artifice.
I've also found that even in places where it appears to exist, there are better (relational) models of same. Perhaps not in every case, but in most. Organizational structures and file systems are both examples of "real" hierarchies for which hierarchical modles are in reality insufficient for practical use.
> 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.
Bastard in all sense of the word.
> 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'd like to hear more about this - any examples of the lightweight/replaceable? Sounds like you've essentially "encapsulated" O-O?
> 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.
> 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.
I echo all of your sentiments.