Re: The Fact of relational algebra (was Re: Clean Object Class Design -- What is it?)

From: Jesper Ladegaard <jla_at_dax.dk>
Date: Sun, 28 Oct 2001 21:33:47 +0100
Message-ID: <3bdc718e$0$241$edfadb0f_at_dspool01.news.tele.dk>


"Gary Stephenson" <garys_at_ihug.com.au> wrote in message news:9rabbo$lcv$1_at_bugstomper.ihug.com.au...
> Hi Jesper,
>
> Many thanks for your detailed response. I have no idea if the things you
> speak of are even possible, let alone probable. It sounds like you are
> saying that the way forward is to just keep experimenting with ad-hoc
> techniques, with the faith that "we'll know it when we see it" - "it" being
> the best solution for whatever particular problem you are trying to solve.
> You may be correct.

No, I don't believe in faith!!! I believe you completely misunderstood me. That is what I'm saying we should *not* do. I would suggest you try read that Wegner and the Minsky paper I gave you. This may elaborate some of the things I'm trying to say.

>
> Personally, I am much more hopeful that the ideas currently being
> promulgated by Date and Darwen (and also Fabian Pascal and others) in their
> "Third Manifesto" work will provide us with a more structured, reliable and
> consistent basis for dealing with the general problem of digital memory
> banks (databases).

Yes, that is basically what we have been discussing right? Roughly speaking, whether we should build information architectures and databases "from the ground up" (bottom-up or reductionist approach as you believe in), or we should try build things by combining many approaches (as I believe in).

In a nutshell:

The reductionist (you) in effect says: Information architectures or databases can be explained and build bottom up using simple logic. That is, the deterministic and strict laws of mathematics or logic 'down here' determining what happens all the way up to the top.

The non-reductionist (me) on the other hand says: Hell no, because there are many factors and non-deterministic laws at many levels of organization that also have to be taken into account in order to create a complex information architecture.

I don't think the relational theory is bad. I just want to argue that large-scale and distributed information architectures can *only* be build and understood by supplementing this strict reductionist approach (that is the strict deterministic mathematical approach the traditional relational theory uses to enforce database integrity) with other approaches. That's all.

In short, what I'm saying is that this game is not about one approach vs. other approaches - we need them all! Using only one approach (i.e. strict mathematically bottom-up approach) and we're stuck for good.

> I acknowledge that the offspring of Relational Theory
> have to date been pretty disappointing, and that there is every reason to be
> skeptical about future prospects.

Actually, I think the relational theory did a very fine job a long way. It's just that things today (the systems and environments we try to model) has become so much more complex and dynamic in nature. And that's why I strongly would argue that we ought to devote more time trying to go beyond that of strict and deterministic logic used in databases today to be able to solve the more complex (non-deterministic) problems of the future.

> However, without solid, rigorous
> mathematical foundations, we would not have any of computers, networks,
> compilers, or technology in general.

True. As I said many times before, we sure also need classical mathematics and logic.

> To me, working from a foundation of
> set theory, predicate logic/calculus, and suchlike are the only way I can
> see of progressing the art.

I understand that. Actually, I think it's fine to use predicate logic, set theory and suchlike. However, *only* doing that and separating the "thing" through some strict logical model, will not take us far.

> Other than inspired ad-hocery by renegade
> individuals that is, which I have little faith in.

Oh, so there is the relational theory and everything else is just ad-hocery. I see now, you really have a pure reductionist gene in you. Well, if that's you philosophy, then there is not much more to discuss I guess. It seems you have already made up your mind then.

That's sad, because I would be happy to discuss with you and see if we could find out 'how deep this rabbit hole goes'. I believe we both could learn a lot from that. But, if you simply refuse that anything else than relational theory is what one could call fundamental then (to be completely honest) I have no faith in this discussion anymore. I mean, what are there to discuss then? Anyway, it's a free country, so if you simply refuse to be where the cool and fun stuff is going to happen, that's entirely up to you :-)

However, something that I will never understand is why most of you relational folks absolutely have to put everything so black and white (not saying that OO folks never do that). IMO the epistemology (what is the truth; what is the fundamental; and most important how can we know it) is way 'out of sync' in this discussion, and that's what I think we really should be discussing.

All this "you must follow this set of strict rules because my father will kick your fathers ass" or "OID's will solve all your problems" or "they will make your life a living hell" because some manifesto, theory or some methodology extremist what-so-ever says so will take us nowhere. IMO such kind of discussions belongs to the marketing world. Also IMO these manifestos that are referred to (whether on the OO or relational side) have not much depth in them. Most of them are very naiv, primitive and the big picture is mostly missing. In short, their epistemology is way 'out of sync' (say screwed up from the start). That is also what I strongly would argue is the primary reason why the software world today is in the stone age. In a world ruled by the latest hype and a bunch of methodology extremists that seem to refuse to communicate with each other, the only winner will be SUN, Oracle and maybe Microsoft, not us!

Even that the trend of software architectures today is slowly moving away from this static and strict view (say strict reductionistic and deterministic view) of information and processes towards a more and more adaptive, dynamic and interactive one, there is still a long way. But I think this process is moving awfully slow sometimes :-( We still have a lot to learn (that at least we agree on).

Actual, this reminds me of a conversation with Carl some time ago where I brought up the usual rant of mine (that everything in the commercial software world sucks and ain't working) and he told me that he didn't think it was that bad because it allows other people to create something better. So I guess nothing is as bad that it ain't good for something and that there are hope that some folks out there will kick Oracle's and SUN's sorry ass in the end :-) One thing is sure, if I ever get something running that will kick all you reductionists sorry asses back to the stone age, nobody (i.e. Oracle or SUN) will never ever get their dirty hands on it and screw it up, even that they offered me a billion dollars under the table. You see, it has to be under the table because we pay 65% tax in demmark and the cars cost more that 3 times that in other countries :-(

But (I tell you) don't you come crawling the day your screwed up no good centralized deterministic strict predicate-logic/set based ugly and busted relational database breaks down or can't scale. Because I will not help you (at least not unless you have an awfully lot of $, or maybe if you offer me a cold draught beer ;-)

I like to apologize for my language. It's just that I've recently been in the cinema watching Rush Hour 2 and they (especially Chris Tucker) have an awfully bad language.

Anyway is was nice discussing with you.

cheers
Jesper Received on Sun Oct 28 2001 - 21:33:47 CET

Original text of this message