comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: MI in Ada 200X
Date: Sat, 31 May 2003 11:27:34 +0200
Date: 2003-05-31T11:27:34+02:00	[thread overview]
Message-ID: <bb9sdg$78a8t$2@ID-77047.news.dfncis.de> (raw)
In-Reply-To: b0IBa.494$78.11159@news.siol.net

Karel Miklav wrote:

> Dmitry A. Kazakov wrote:
>> Wesley Groleau wrote:
>>>>>Mário Amado Alves wrote:
>>>>>
>>>>>>Everybody wants class MI. The reasons it was left out of Ada 95 and
>>>
>>>I don't!
>> 
>> OK. Bill Gates once said that nobody would need more than 64K RAM. Or was
>> it 640K? I do not remember. Anyway, never say never. (:-))
> 
> I don't see how this is related to MI. What do you think about the
> diamond problem and other evils of MI?

Incest? A bad thing, you know. However, I would not call a problem anything 
that can be detected at compile-time. Anyway we have a lot of 
diamond-things in present Ada. Consider:

with Ada.IO_Exceptions;
package B is
   End_Error : exception renames IO_Exceptions.End_Error;
   ...
end B;

with Ada.IO_Exceptions;
package C is
   End_Error : exception renames IO_Exceptions.End_Error;
   ...
end C;

with B; use B;
with C; use C;

procedure D is
   ...
exception
   when End_Error => -- which End_Error?

exception renaming is not 'renaming', but a new view. In C++ terms it is 
sort of "B : public A", not "B : public virtual A" (as a naive programmer 
might think).

> Besides, where do or would you use this feature?

First from the stack: to make a stream object controlled. (*)

> MI might look like a good idea in a simple project, but when things
> start to get messy and you're caught into inheritance net, you can
> forget who your own mother is :) I vote NO for MI and other inventions
> of marketing departments but YES for interfaces.

(*) Ada.Streams.Root_Stream_Type is not a [public] descendant of 
Ada.Finalization.Limited_Controlled.

-- 
Regards,
Dmitry A. Kazakov
www.dmitry-kazakov.de



  parent reply	other threads:[~2003-05-31  9:27 UTC|newest]

Thread overview: 73+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-05-23 23:05 Suggestion for Ada 200x - Interface inheritance Steve
2003-05-24  1:02 ` Robert A Duff
2003-05-29 16:47   ` Brian Gaffney
2003-06-01 10:29   ` Craig Carey
2003-05-24 12:35 ` Wojtek Narczynski
2003-05-24 17:53   ` Georg Bauhaus
2003-05-25 13:11     ` Wojtek Narczynski
2003-05-24 22:07   ` Robert A Duff
2003-05-25 14:12     ` Wojtek Narczynski
2003-05-25 17:53       ` Jeffrey Carter
2003-05-25 18:47         ` Wesley Groleau
2003-05-25 19:42           ` Hyman Rosen
2003-05-26  7:53             ` Wojtek Narczynski
2003-05-26 15:50               ` Hyman Rosen
2003-05-27 18:41                 ` Wojtek Narczynski
2003-05-27 18:55                   ` Wesley Groleau
2003-05-27 19:13                   ` Hyman Rosen
2003-05-28 13:07                     ` Wojtek Narczynski
2003-05-28 13:28                       ` Jean-Pierre Rosen
2003-05-29  0:58                       ` Hyman Rosen
2003-05-28 22:13             ` Robert A Duff
2003-05-28 23:50               ` Hyman Rosen
2003-05-29  9:17               ` Dmitry A. Kazakov
2003-05-29 13:31               ` Wojtek Narczynski
2003-05-26  7:51           ` Wojtek Narczynski
2003-05-25  1:33   ` Steve
2003-05-25 10:37     ` Simon Wright
2003-05-26  7:54     ` Jean-Pierre Rosen
2003-05-26 10:07       ` Preben Randhol
2003-05-26 16:32         ` Pascal Obry
2003-05-26 16:59           ` Preben Randhol
2003-06-01 10:53       ` Craig Carey
2003-06-01 12:17         ` Preben Randhol
2003-05-26  7:49   ` Jean-Pierre Rosen
2003-06-02  9:01     ` Wojtek Narczynski
2003-05-28 13:57 ` MI in Ada 200X (was: Suggestion for Ada 200x - Interface inheritance) Mário Amado Alves
2003-05-28 15:05   ` Preben Randhol
2003-05-29  0:54     ` MI in Ada 200X Hyman Rosen
2003-05-29 17:38       ` Stephen Leake
2003-05-30  7:20       ` Preben Randhol
2003-05-29  9:17     ` MI in Ada 200X (was: Suggestion for Ada 200x - Interface inheritance) Dmitry A. Kazakov
2003-05-29 22:56       ` MI in Ada 200X Hyman Rosen
2003-05-30  7:39         ` Dmitry A. Kazakov
2003-05-30 13:11           ` Hyman Rosen
2003-05-30 14:29             ` Robert A Duff
2003-05-30 14:51               ` Hyman Rosen
2003-05-30 15:11         ` Mark A. Biggar
2003-05-30 15:51           ` Hyman Rosen
2003-05-30 22:38           ` John Griffiths
2003-05-30  2:50       ` Wesley Groleau
2003-05-30  7:38         ` Dmitry A. Kazakov
2003-05-30 12:20           ` Karel Miklav
2003-05-30 12:59             ` Hyman Rosen
2003-05-30 14:02               ` Georg Bauhaus
2003-05-30 14:04                 ` Lutz Donnerhacke
2003-05-30 18:45                   ` Georg Bauhaus
2003-05-30 15:02                 ` Hyman Rosen
2003-05-30 19:14                   ` Georg Bauhaus
2003-05-30 19:40                     ` Hyman Rosen
2003-05-30 19:31               ` Wojtek Narczynski
2003-05-30 22:42             ` John Griffiths
2003-05-31  9:27             ` Dmitry A. Kazakov [this message]
2003-05-31 13:53               ` Martin Krischik
2003-06-01  9:18                 ` Dmitry A. Kazakov
2003-05-30  8:28         ` Mário Amado Alves
2003-05-30  8:46       ` MI in Ada 200X (was: Suggestion for Ada 200x - Interface inheritance) Preben Randhol
2003-05-31 10:17         ` Dmitry A. Kazakov
2003-05-31 13:48           ` Preben Randhol
2003-05-31 17:21             ` Dmitry A. Kazakov
2003-05-29  0:54   ` MI in Ada 200X Hyman Rosen
2003-05-29  2:13   ` MI in Ada 200X (was: Suggestion for Ada 200x - Interface inheritance) Robert I. Eachus
2003-05-29 12:06     ` Mário Amado Alves
2003-05-31 19:58       ` Chad R. Meiners
replies disabled

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