comp.lang.ada
 help / color / mirror / Atom feed
From: mw@ipx2.rz.uni-mannheim.de (Marc Wachowitz)
Subject: Re: ADA SUCKS, C/C++/JAVA RULES!!!!
Date: 1997/11/11
Date: 1997-11-11T00:00:00+00:00	[thread overview]
Message-ID: <64a739$oc1$1@trumpet.uni-mannheim.de> (raw)


kennel@nospam.lyapunov.ucsd.edu (Matt Kennel (Remove 'NOSPAM' to reply)) wrote:
> I think it's perfectly OK to admit most of the truth that there was no clean
> way to do MI in a language which included most of Ada83 and its module
> system as an intellectual base.

Nothing against admitting this in case it truly was the reason, but I
don't see why it would be true. In fact, off the top of my head I could
think of several different approaches to integrating MI - be it multiple
interface inheritance with single code inheritance, or full multiple
code inheritance - with "OO-less Ada95". Of course, different people's
interpretations of what "clean" means in our context vary considerably.

I wouldn't like to try and please a fanatic "OO-purist" (bad misnomer,
but established by a bad tradition) who will only accept something as
"clean OO" if it looks pretty much like his beloved programming language
(be that Self or Smalltalk or Eiffel or Common Lisp's object system or
whatever else), but given what I'd expect about someone who generally
likes Ada (particularly its emphasis on readability and explicitness
vs. ease/compactness of writing, and the freedom to chose among design
alternatives), I think it would have been possible to find something
consistent with these tendencies and workable in practice. Basically I'd
go for a delegation-like model, where overriding is only possible with
the routines marked as such, and the decision whether or not to override
something must be explicit, such that with every subtype there's a list
of all available methods; thus any new method in a supertype would trigger
the need in subtypes to consider whether that new method would be used as
provided, or redefined, or that particular subtyping ceases to make sense.
Another approach would be to establish messages as declarations in their
own right, not inherently associated with types, and then define subtyping
as relation on the set of handled messages, where again handlers would be
required to be explicit. This way one could avoid name clashes or repeated
inheritance, not having to make up complicated solutions for problems which
don't occur in the first place. The design space is really quite large,
much richer than only the more popular models of Java, C++ or Eiffel.

My impression is indeed that the Ada language-design tradition tends to
be conservative about inventing unconventional "big models" - like some
very unusual form of OO - but will rather provide well-established features
(perhaps combined in a way which was previously not common) and building
blocks - which can be used in lots of different situations - for a variety
of designs, and I have no reasons to doubt that the original description
why MI was left out is true.

-- Marc Wachowitz <mw@ipx2.rz.uni-mannheim.de>




             reply	other threads:[~1997-11-11  0:00 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1997-11-11  0:00 Marc Wachowitz [this message]
  -- strict thread matches above, loose matches on Subject: below --
1997-10-28  0:00 ADA SUCKS, C/C++/JAVA RULES!!!! John Black
1997-10-28  0:00 ` Kenneth W. Sodemann
1997-10-28  0:00 ` Kenneth W. Sodemann
1997-10-28  0:00 ` Adam Beneschan
1997-10-30  0:00   ` Shmuel (Seymour J.) Metz
1997-10-28  0:00 ` John Bode
1997-11-03  0:00   ` vonhend
1997-10-28  0:00 ` Kenneth W. Sodemann
1997-10-28  0:00 ` Shayne Flint
1997-10-28  0:00   ` Dennis Weldy
1997-10-29  0:00   ` Alan E & Carmel J Brain
1997-10-29  0:00     ` CodeRed
1997-10-30  0:00       ` Alan Brain
1997-10-28  0:00 ` John Black
1997-10-28  0:00   ` John Bode
1997-10-28  0:00   ` Dann Corbit
1997-10-29  0:00     ` Adam Beneschan
1997-10-29  0:00   ` Philip Brashear
1997-10-29  0:00   ` BRIAN LANGENBERGER
1997-10-30  0:00   ` Ed Muldoon
1997-10-30  0:00   ` Jon S Anthony
1997-10-28  0:00 ` Kenneth W. Sodemann
1997-10-28  0:00 ` Kenneth W. Sodemann
1997-10-28  0:00   ` Steve Ropa
1997-10-28  0:00     ` Charles R. Lyttle
1997-10-30  0:00     ` Kenneth W. Sodemann
1997-10-30  0:00   ` Kenneth W. Sodemann
1997-12-04  0:00   ` tbb03ar
1997-10-28  0:00 ` Kenneth W. Sodemann
1997-10-28  0:00 ` Kenneth W. Sodemann
1997-10-28  0:00 ` BRIAN LANGENBERGER
1997-10-28  0:00   ` Tucker Taft
1997-10-28  0:00   ` Rob
1997-10-28  0:00 ` Kenneth W. Sodemann
1997-10-28  0:00 ` Rob Eamon
1997-10-28  0:00 ` Kenneth W. Sodemann
1997-10-29  0:00 ` ADA and Pascal SUCK, C,C++, and Java are the only languages you need!! Timo Salmi
1997-10-29  0:00   ` John Black
1997-10-29  0:00     ` John Black
1997-10-29  0:00       ` ADA SUCKS, C/C++/JAVA RULES!!!! Dale Stanbrough
1997-10-29  0:00 ` ADA and Pascal SUCK, C,C++, and Java are the only languages you need!! Mike Copeland
1997-10-29  0:00   ` Mike Copeland
1997-10-30  0:00     ` ADA SUCKS, C/C++/JAVA RULES!!!! John Gluth
1997-10-31  0:00       ` Bernard J. Girardot
1997-11-04  0:00       ` Michael Stark
1997-10-31  0:00 ` Ken Mays
1997-10-31  0:00   ` Charles R. Lyttle
1997-11-01  0:00     ` NOSPAM_f93-eaa
1997-11-01  0:00       ` Charles R. Lyttle
1997-11-02  0:00         ` David A. Frantz
1997-11-08  0:00           ` Charles W. Johnson
1997-11-08  0:00             ` Charles R. Lyttle
1997-11-03  0:00         ` Nick Leaton
1997-11-06  0:00         ` John Stevens
1997-11-07  0:00           ` Boyd Roberts
1997-11-07  0:00             ` Kaz Kylheku
1997-11-10  0:00             ` Charles W. Kann
1997-11-10  0:00               ` Jon S Anthony
1997-11-11  0:00                 ` Matt Kennel (Remove 'NOSPAM' to reply)
1997-11-11  0:00                   ` Charles W. Kann
1997-11-11  0:00                     ` Jon S Anthony
1997-11-11  0:00                     ` Brian Rogoff
1997-11-02  0:00 ` Supreme
1997-11-04  0:00   ` Alan E & Carmel J Brain
1997-11-04  0:00 ` Guest
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox