comp.lang.ada
 help / color / mirror / Atom feed
From: Richard Riehle <richard@adaworks.com>
Subject: Re: Sugestion to Multiple Inheritance
Date: Fri, 11 Jan 2002 10:14:24 -0800
Date: 2002-01-11T18:13:50+00:00	[thread overview]
Message-ID: <3C3F2B7F.4F077FC0@adaworks.com> (raw)
In-Reply-To: slrna3tf3u.kg.lutz@taranis.iks-jena.de

Lutz Donnerhacke wrote:

> The rationale suggests three solutions in chapter "4.6  Multiple Inheritance":

None of those suggestions in the Rationale satisfies the requirements
for multiple inheritance.  They are simply workarounds.   There is
no MI in Ada, period.   That is not a bad thing, but it is a fact.

MI, as with any inheritance, requires satisfying the Liskov Substitutatility
Priniciple.  None of the workarounds do.    MI implies a corresponding
available of polymorphic types. None of the workarounds do.    MI
implies dispatching, dynamically,  on any derivation of a type in the
inheritance hierarchy.  None of the workarounds do.

In my view, MI is still a research topic.  There is no universally accepted
model, and no foolproof design, at this stage, in any language, that can be
said to solve all the problems.   Eiffel may come the closest to getting it
right, but even with Eiffel,  any discussion of MI requires a long and
detailed understanding of repeated inheritance and other entertaining
issues.    With C++, MI is probably a disaster waiting to happen.

Why would anyone want MI.  MI is most useful if you have a need for
polymorphic dispatching types. Grady Booch suggests that when you need
MI, you really need it.      The frequency with which one needs MI,
contrasted with the risks associated with it should make one pause
before deciding that it should be included in a language design
where software safety is an issue.    Tucker go this one right.

Richard Riehle






  parent reply	other threads:[~2002-01-11 18:14 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-01-11 10:20 Sugestion to Multiple Inheritance Lutz Donnerhacke
2002-01-11 17:21 ` Stephen Leake
2002-01-11 17:53   ` Lutz Donnerhacke
2002-01-11 19:57     ` Stephen Leake
2002-01-17  8:28       ` Lutz Donnerhacke
2002-01-17 14:31         ` Stephen Leake
2002-01-17 14:54           ` Lutz Donnerhacke
2002-01-17 20:52             ` Jim Rogers
2002-01-11 18:07 ` Mark Lundquist
2002-01-11 18:14 ` Richard Riehle [this message]
2002-01-11 20:56   ` Hyman Rosen
2002-01-12  7:35     ` Richard Riehle
2002-01-13  6:37       ` Hyman Rosen
2002-01-14 13:58         ` John English
2002-01-14 16:27           ` Ole-Hjalmar Kristensen
2002-01-12  2:09   ` Will
2002-01-11 22:04 ` Matthew Heaney
2002-01-15 15:32   ` Hyman Rosen
2002-01-15 16:03     ` Lutz Donnerhacke
2002-01-18 19:03       ` Matthew Heaney
2002-01-21 11:23         ` Lutz Donnerhacke
2002-01-21 16:43           ` Brian Rogoff
2002-01-21 17:00             ` Lutz Donnerhacke
2002-01-22 16:55               ` Brian Rogoff
2002-01-23  8:58                 ` Dmitry A. Kazakov
2002-01-25  0:09                   ` Brian Rogoff
2002-01-28 16:23                     ` Dmitry A. Kazakov
2002-01-12  0:28 ` Nick Roberts
replies disabled

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