Re: too much OOP ?
- From: frebe <frebe73@xxxxxxxxx>
- Date: Wed, 2 Jan 2008 09:49:38 -0800 (PST)
I have to remind you that you started to talk about abstraction
levels. You claimed SQL being at a extremly low level of abstraction.
No, I said that designing it in terms of records is low level. If the
application about customers etc, and people talk about records, then it is
low level.
I agree that record is a low-level construct, such as an struct in C
or class in C++. That is why the relational model doesn't has records,
like pre-relational databases.
The point is that when the language constructs are in terms of
records, while you can say "customer," in the language, then "customer" is
a higher level abstraction (relatively to the built-in language core), so
the design is.
So a relation named customer is a high-level construct?
If you had a language which could directly describe the
customer as a term, then that language would be low-level. It is all
relative.
Sorry, you lost me again... I think both Java and SQL are able to
directly describe customer as a term.
This is not a workable concept. The only way you could formalize it is by
considering some a target language and then measuring algorithmic
complexity of the language constructs.
And you still claim that MOV and UPDATE have the same algorithmic
complexity?
Yes. A primitive operation has alleged complexity 1. You can't look into,
it is dark in there...
So if any primitive in the language has complexity 1, how can
different languages ever have different complexity?
That was the reason why the 5GL project collapsed. Their primitive
operations could not be implemented uniformly efficient. SQL suffers this
problem too. Writing an application you have constantly to keep in mind the
implementation of the constructs you are using.
I agree with you to some extent. You need to consider physical indexes
when writing SQL queries operating on large amounts on data. But
having a query optimizer calculating the best execution plan is much
better than hard-code the execution plan in your application code.
Having to think of only some things in the implementation of the
constructs, is much better than actually having to implement the
constructs by yourself.
Bigger is n in nGL, more
attention you have to pay and increasingly difficult it becomes to foresee.
This breaks abstractions of the language constructs.
I can imagine the same discussion in the 60's, when 3GL was
introduced.
For 5GL it became just
catastrophic. We cannot go this way.
I think that when we get some sound theory backing up more 4GL or even
5GL, we will go this way. Currently one of the few sound theories to
backing up 4GL is relational algebra.
I have to ask you another question. In your first post, you claimed
SQL being low level. Now you seem to agree that SQL is high level
language. Instead you argue that too high level languages shouldn't be
used. Is this observation correct? Do you think that all developers
using SQL database are making a mistake? Would it be better if they
implemented the data management logic in their applications instead?
Or should they use some other kind of database?
I might add that SQL also have constructs for adding new bigger black
boxes. One is called views.
The OP meant UPDATE, not views.
Ever heard about updatable views?
Views is a step in right direction, away from climbing up the ladder to
hell.
Some things we could agree on anyway.
//frebe
.
- Follow-Ups:
- Re: too much OOP ?
- From: Dmitry A. Kazakov
- Re: too much OOP ?
- References:
- Re: too much OOP ?
- From: Daniel T.
- Re: too much OOP ?
- From: Dmitry A. Kazakov
- Re: too much OOP ?
- From: frebe
- Re: too much OOP ?
- From: Dmitry A. Kazakov
- Re: too much OOP ?
- From: frebe
- Re: too much OOP ?
- From: Dmitry A. Kazakov
- Re: too much OOP ?
- From: frebe
- Re: too much OOP ?
- From: Dmitry A. Kazakov
- Re: too much OOP ?
- Prev by Date: Re: too much OOP ?
- Next by Date: better opportunity for h1b visa holders that they have not ever
- Previous by thread: Re: too much OOP ?
- Next by thread: Re: too much OOP ?
- Index(es):
Relevant Pages
|