Re: Object-relational impedence

From: Robert Martin <unclebob_at_objectmentor.com>
Date: Sun, 16 Mar 2008 14:53:13 -0500
Message-ID: <200803161453131393-unclebob_at_objectmentorcom>


On 2008-03-14 03:46:58 -0500, David BL <davidbl_at_iinet.net.au> said:

> This has more to do with the
> impedance mismatch than with some notion of "higher level". The RM is
> suited (and only suited) to representing and querying information in
> the form of large sets of propositions, whereas OO is suited (and only
> suited) to building state machines within an abstract computational
> machine. I would hardly call a set of propositions a state machine,
> and I would hardly call a state machine a set of propositions.
> Therefore there isn't really any overlap in the purpose of OO and RM.
> Not surprisingly the best approach to build a system is often a hybrid
> of the two. The idea to directly map a tuple (or "record") to an
> object reveals confusion. A tuple is a non-scalar value representing
> an immutable fact. An object is an identifiable state machine within
> a larger abstract computational machine.
>
> The RM has a sound mathematical basis, and it's clear that the RM will
> stand the test of time. Any OO programmer who thinks it's reasonable
> to wrap RM behind an ORM doesn't understand the RM, its fundamental
> importance, the extent to which data can be decoupled from application
> and the tremendous value in doing so.

I was with you, and in violent agreement with you, until that last sentence. I think it *is* reasonable to use an ORM to adapt an RM to a specific application. This has nothing to do with which model is superior, or better, or more theoretical, or more valid, or etc. It's simply a matter of pragmatics.

-- 
Robert C. Martin (Uncle Bob)  | email: unclebob_at_objectmentor.com
Object Mentor Inc.            | blog:  www.butunclebob.com
The Agile Transition Experts  | web:   www.objectmentor.com
800-338-6716                  |
Received on Sun Mar 16 2008 - 20:53:13 CET

Original text of this message