Re: Bob's 'Self-aggrandizing ignorant' Count: Was: What databases have taught me

From: Tony D <tonyisyourpal_at_netscape.net>
Date: 28 Jun 2006 18:53:12 -0700
Message-ID: <1151545992.232692.12000_at_75g2000cwc.googlegroups.com>


Prefix: usually I stay out of OO-related threads, for the simple reason that I have little positive to say about OO, in any guise. However, I couldn't let this one go by. You may consider this a health warning for what follows.

George wrote:

[ loads and loads of snippage. ]

> Granted OOP is not defined upon one formal definition or
> formalism

Precisely the problem with it.

> but there is concensus on its general meaning.

Really ? Could you prove that, in anything other than a "motherhood and apple pie", utterly bland way ? And are you really suggesting that we can do without formal underpinnings, so long as there's "consensus on its general meaning" ?

> OOP doesn't
> lack definition, the problem is there are too many definitions.

Similar to the problem with standards: so many to choose from. This free-wheeling attitude showed itself in the approach to OODBMS; let's not define anything before we start, let's just chuck things at the wall and see what sticks. (I paraphrase, but not by much.) OODBMSs are a zero billion dollar per year business; there are many good reasons for this state of affairs, and this approach is just one of them.

> There
> exist, however, precise definitions and specifications for most OO
> languages.

So, most OO languages have a set of denotational or axiomatic semantics defined for them ? (Don't proffer operational semantics; that pushes the argument down to the definition of the abstract machine you define the operations in.)

> For example Sun's Java specifications

I just had a read at the online version of the Java language specification (the 3rd edition, currently). It's every bit as horrible as I remembered it. Consider section 16.1.8, "Assignment Expressions", which is quite crucial, given that Java is basically a prettier way of arranging assignment statements.

> therefore you cannot
> bemoan any lack of clear specification at least at the language level.

I rather think I can. Indeed, I just did.

> At any rate there is much to draw from.
>

Precisely. *Too much* to draw from, and not enough of it at a formal enough level. "Formal prose" never has and never will count. (Sadly, so many people seem to accept it as "good enough" that there are people out there who seriously think that Kernighan & Ritchie's horror counts as a language definition.)

> "Large unpredictable state machines comprised of smaller ones" -
> fantastic.
>

No, not fantastic; just what Simula was originally designed for. You can predict what each object will do, given certain inputs, within the confines of whatever passes as a definition for the language you describe that object in; but you can't predict what inputs will arrive, and in what order they will arrive. (And if you have global side effects, the potential unpredictability goes through the roof.) Hence, "large (I would say larger) unpredictable state machines comprised of smaller predictable state machines."

[ snip ] Received on Thu Jun 29 2006 - 03:53:12 CEST

Original text of this message