Re: Object-relational impedence

From: Marshall <marshall.spight_at_gmail.com>
Date: Mon, 10 Mar 2008 19:40:48 -0700 (PDT)
Message-ID: <0adaeb63-bd9c-46ac-ab64-cb4f808962fe_at_e10g2000prf.googlegroups.com>


On Mar 10, 5:17 pm, Robert Martin <uncle..._at_objectmentor.com> wrote:
>
> Wow, it's sure getting deep in here. I can't seem to make out the
> content for all the fuzz and snow.

Indeed. Thread fatigue has set in. I suspect we are going to have to "agree to disagree" as they say, the same way we did when we had a big c.d.t/c.o. crosspost flamewar on the topic of ORMs, just like we did when we had the same conversation in 2007, and earlier in 2006 and 2005.

I'll be brief:

> So, in fact, it is not a reverse analogy. It is a very appropriate
> analogy. The ORM lives at a higher level of abstraction than the SQL
> because it has access to application intent, that the SQL does not have.

I disagree on every particular. ORMs are decidedly lower level. And the reason they have written poor SQL historically, write poor SQL today, and always will write poor SQL is because they do not have access to application intent.

I recognize that I am merely making assertions and not arguments at this point.

> > ORMs are a breeding ground for antipatterns.
>
> RELIGION!
Experience.

Let me just put it this way. Over the last ten years I have evaluated something like 50 different ORMs. I have written at least three myself.
I have participated in the industrial development of two, one at a smallish consulting company and one at a Fortune 100 company known for its engineering prowess. Further I have worked on several applications with hand-written "entity layers"; effectively these are manually-produced ad-hoc ORMs, sometimes running to a hundred thousand lines of code.

I have yet to see even one ORM that didn't have egregious logical errors on page one, the sort that indicate that the designer didn't understand the basics of the relational model. I have yet to see even one of them that didn't make some architectural assumption that placed unnecessary if not ridiculous requirements on the schema. I have yet to see even one of them produce adequate performance under load.

Bleah. I have more experiences to relate, but I have to go cook some rice.

So, is a good ORM possible? I am convinced not. Do I have ironclad proof? I admit I don't. Alas, I shall have to make due with a highly predictive explanatory model and overwhelming supporting evidence merely.

Marshall Received on Tue Mar 11 2008 - 03:40:48 CET

Original text of this message