Re: Object-relational impedence
Date: Fri, 14 Mar 2008 10:43:11 +0100
>> The real point of that remark was that the user of a tool is at a >> higher level of abstraction than the tool itself. SQL is a tool. ORMs >> are tools that use SQL to get their job done, just like compilers use >> assembly to get their job done. In that sense ORMs live at a higher >> level of abstraction than SQL.
> Lets have an example: There are many "compiler" products translating
> from a high-level language like ADA to a low-level language like C,
> instead of translating to machine code directly. What if someone wrote
> a "compiler" translating C source code to ADA source code, would that
> make C more high level than ADA? Hardly? The existance of a product
> translating from language A to language B doesn't say anything about
> the levels of A and B.
Right. What does it, is the difficulty of designing such a compiler. Clearly within the set of Turing-complete languages you could translate from whatever language to any other. But, while translation from Ada to C is considerably difficult (mainly because C is ill-defined), a good translation from C to Ada is almost impossible. "Good" means deducing higher-level constructs from the code. It is much like literary translation, and requires general intelligence.
Ah, ADA = The Americans with Disabilities Act of 1990, the programming language is called "Ada", named after Augusta Ada King, Countess of Lovelace
>> The members of c.d.t. might respond negatively to that idea because >> they see SQL as a better vehicle to do the job that the ORM is trying >> to do. That's fine, but does not change the fact that the ORM is using >> SQL as an implementation language.
> If a RDBMS product is implemented using an OOPL, does that make
> relational algebra more high level than OO?
That depends on the application domain, the comparison is conditional to that. Further, some things might be incomparable.
I agree that the fact of use alone does not imply the outcome of a comparison. There are all sorts of use, some are quite meaningless. I remember in student times, we implemented gotos (which were prohibited) using structural constructs, just to protest and to have fun. Abstraction inversion is a quite common thing.
-- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.deReceived on Fri Mar 14 2008 - 10:43:11 CET