Re: Object-relational impedence

From: Marshall <>
Date: Wed, 5 Mar 2008 13:38:31 -0800 (PST)
Message-ID: <>

On Mar 5, 12:19 pm, rugby fan <> wrote:
> Marshall wrote:
> > On Mar 5, 9:58 am, S Perryman <> wrote:
> >>But you cannot claim that all OO prog langs will have an implementation
> >>that forces the fallacious "one at a time" scheme
> > Can you name one that doesn't? (I think I agree that
> > one could exist in theory, however.)
> CLOS, OCaml etc (by virtue of being built on Functional prog langs) .

Well, hrmm. Let's see. While those are certainly *interesting* and *surprising* examples (in this context) I don't know that they qualify as counterexamples to my point.

Take CLOS. It is an object system built on LISP. As such, is it fair to consider it in terms of the primitives or "axioms" that LISP is built on? (It may not be; the mechanisms required for its complex function invocation rules may strengthen the system; I'm not familiar enough with this to know.) Those primitives, car, cdr, cons, quote, atom, eq, cond) are none of them set-oriented. An argument could be made that some of them (car, cdr, cons) are list-oriented, but even in that case, it does not rise to the level I am thinking of. For example, if we consider how one processes all the items in a list, one finds a pattern (a very *nice* pattern, you understand; I'm not complaining about it) in which we take the head of the list, operate on it, and recurse with the rest of the list. Many good things can be said of this pattern, but it is not set-oriented.

I am not familiar enough with OCaml to say much. But if we were talking SML, (a language I have the utmost respect for) I would still not consider it set-oriented. map(), filter(), fold(), while providing collection-oriented interfaces, are typically not primitive in the language.

> >>(Functional programming being a case in point) .
> > Why are you bringing up functional programming when
> > talking about OOPLs?
> Because FP has :
> - been able to support OO quite easily
> - has an interesting execution infrastructure that IMHO makes it a
> good candidate for supporting the Relational paradigm

Hrmmm, well, I have to admit you make a good argument here. (Although you must grant me that, we people speak of OOPLs, they are not usually thinking CLOS!)

But I am, rather, speaking of what languages' axiomatic natures are. I could, in fact, write a Relation class in Java, and provide setoriented

methods for it, and a whole host of relational goodness. But that wouldn't make Java a relational language per se.

Virtually no languages have primitive support for anything like a collection. SQL and SETL and a few others; that's it. There are some languages that were designed from the start with *list* processing in mind: lisp (and I should probably also mention the APL family here.) There are some *very* interesting things in there, but not things I would say could be strictly described as set-oriented.

> Given that the topic is "Object-relational impedence" , I am interested
> in anything that may be able to remove the impedence. And you ??
> > Are you thinking of map(), by chance?
> Are you talking about the map function (map : Type x Func -> Type) ??
> If so, no (in fact, no for any likely meaning of "map" ) .


Marshall Received on Wed Mar 05 2008 - 22:38:31 CET

Original text of this message