comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Other Ada Standards (was Re: SIGada Conference)
Date: Sun, 28 Dec 2003 20:55:07 +0100
Date: 2003-12-28T20:55:07+01:00	[thread overview]
Message-ID: <bsnc2s$ek36c$2@ID-77047.news.uni-berlin.de> (raw)
In-Reply-To: VPydnZhRwa3wgHKi4p2dnA@comcast.com

Robert I. Eachus wrote:

> Dmitry A. Kazakov wrote:
> 
>> With/use issue is rather a cosmetic one. It might be very important for
>> language promoting, though for those who are using Ada on daily basis, it
>> is uninteresting, yet. Another very important cosmetic thing, (Robert
>> Eachus and me mentioned it before) could be an ability to bundle a set of
>> with's and use's in one package with then could be with-ed / used-ed
>> instead.
> 
> Not me!  Unless I mentioned that I often do just that, but in a
> different way.  If I am composing several ADTs to create a type I
> certainly will do:
> 
> with A; with B; with C;
> package Multiple is
> 
>     type ADT is ...
> 
>     package New_A is new A(ADT);
>     package New_B is new B(ADT);
>     package New_C is new C(ADT);
> 
>     function ... renames New_A...
>     procedure ... renames New_B...
>     ...
> 
> end Multiple;
> 
> Now for types that use the ADT, I only have to say:
> 
> with Multiple;
> 
> of course I will often follow it with:
> 
> use type Multiple.ADT;
> 
> to make the interesting subset of the declarations in ADT visible.  (If
> I need one of the uncommon operations from one of the instances, I will
> either use dotted notation or a use clause in some nested scope.)
> 
>> And these cosmetic things are about
>> 
>> - information hiding,
>> - refactoring,
>> - reuse
>> 
>> of declarations. Isn't it more than just an issue of training a text
>> editor?
> 
> Yes, it is.  But what does it mean if you have a large set of unrelated
> packages withed by a large number of different units?  Bad design.

Right. But if they are related? Deeply nested generic child units? Does not
the language encorage designers to use larger compilation units because
otherwise users will be "punished" by larger with/use blocks?

> So
> adding something to the language to make it easier for bad designers to
> implement their designs, and harder on the readers than the bad design
> would otherwise be is not something we want to do.

I think that we have reached the level of complexity where it becomes a
heavy burden for a reader to analyze all with's and use's. Tools might
help, but there is still a problem.

> Now look at what I did above, and think about interfaces.  Interfaces
> will make it easier to aggregate related units and when interfaces are
> used to implement the above pattern, and will make it even easier on the
> reader.  Unless there is a with for one of the instances used to
> implement an instance of an interface, the reader only needs to
> understand the interface to understand a unit where an interface
> instance is withed.

True, this the same problem, but it is one level beneath. You are talking
about type interfaces, with/use issue is sort of "package interfaces". With
type interfaces and abstract types we can hide uninteresting details.
Probably it is time to go this way for packages.

> This is what I meant when I said that I think that adding interfaces to
> Ada will be a big benefit without considering multiple inheritance.
> Interfaces make it easier for a writer to communicate his intentions to
> readers.

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



  reply	other threads:[~2003-12-28 19:55 UTC|newest]

Thread overview: 80+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <468D78E4EE5C6A4093A4C00F29DF513D04B82B08@VS2.hdi.tvcabo>
2003-12-17  1:01 ` SIGada Conference Stephen Leake
2003-12-17  3:19   ` Robert I. Eachus
2003-12-18  6:55     ` Robert C. Leif
2003-12-18 15:23       ` Other Ada Standards (was Re: SIGada Conference) Robert I. Eachus
2003-12-18 18:27         ` Robert A Duff
2003-12-19  7:38           ` Robert I. Eachus
2003-12-19 23:10             ` Robert A Duff
2003-12-19  8:51           ` Russ
2003-12-19 17:03             ` tmoran
2003-12-20  0:43               ` Russ
2003-12-19 23:18             ` Robert A Duff
2003-12-20  7:05               ` Russ
2003-12-20  9:06                 ` Nick Roberts
2003-12-20 17:43                   ` Robert I. Eachus
2003-12-22  0:07                     ` Russ
     [not found]                       ` <bfcib1-r43.ln1@beastie.ix.netcom.com>
2003-12-22 17:10                         ` Robert I. Eachus
2003-12-22 18:25                           ` Larry Hazel
2003-12-23 16:55                             ` Chad R. Meiners
2003-12-24 13:17                               ` Marin David Condic
2003-12-24 14:57                                 ` Robert A Duff
2003-12-25  3:26                                   ` Marin David Condic
2004-01-03 19:03                                   ` Pascal Obry
2003-12-24 20:16                                 ` Russ
2003-12-24 21:41                                   ` Robert A Duff
2003-12-25  2:51                                     ` Robert I. Eachus
2003-12-25  3:42                                     ` Marin David Condic
2003-12-25  6:35                                       ` Russ
2003-12-25 12:34                                         ` Georg Bauhaus
2003-12-25 15:38                                           ` Marin David Condic
2003-12-26 20:09                                             ` Russ
2003-12-27  3:39                                               ` Georg Bauhaus
2003-12-27  7:40                                                 ` Russ
2003-12-27 11:18                                                   ` Georg Bauhaus
2003-12-28  5:56                                                     ` Russ
2003-12-27 11:24                                                 ` Dmitry A. Kazakov
2003-12-27 12:21                                                   ` Georg Bauhaus
2003-12-28 11:44                                                     ` Dmitry A. Kazakov
2003-12-28 13:59                                                       ` Georg Bauhaus
2003-12-28 19:43                                                         ` Robert A Duff
2003-12-28 20:47                                                           ` Dmitry A. Kazakov
2003-12-28 19:54                                                         ` Dmitry A. Kazakov
2003-12-29  6:07                                                           ` Georg Bauhaus
2003-12-29 11:28                                                             ` Dmitry A. Kazakov
2003-12-29 13:36                                                               ` Chad R. Meiners
2003-12-29  6:25                                                           ` Georg Bauhaus
2003-12-27 18:43                                                   ` Robert A Duff
2003-12-28 11:45                                                     ` Dmitry A. Kazakov
2003-12-28 19:59                                                       ` Robert A Duff
2003-12-30 18:03                                                     ` Peter Richtmyer
2003-12-30 23:02                                                       ` Alexandre E. Kopilovitch
2003-12-27 21:56                                                   ` Russ
2003-12-27 22:52                                                     ` Robert I. Eachus
2003-12-28 11:44                                                     ` Dmitry A. Kazakov
2003-12-28 18:14                                                       ` Robert I. Eachus
2003-12-28 19:55                                                         ` Dmitry A. Kazakov [this message]
2003-12-29  2:08                                                           ` Robert I. Eachus
2003-12-29 11:29                                                             ` Dmitry A. Kazakov
2003-12-29 13:44                                                               ` Chad R. Meiners
2003-12-29 17:07                                                                 ` Robert I. Eachus
2003-12-28 23:17                                                       ` Russ
2003-12-28 23:45                                                         ` Wes Groleau
2003-12-27 14:09                                                 ` Marin David Condic
2003-12-27 19:25                                                   ` Robert I. Eachus
2003-12-28  1:47                                                   ` Russ
2003-12-23 10:49                           ` come from joke (was " Peter Hermann
2003-12-23 12:19                             ` come from joke Samuel Tardieu
2003-12-23 17:00                               ` Arthur Evans Jr
2003-12-23 22:03                               ` Wes Groleau
2003-12-25  0:37                                 ` Stephane Richard
2003-12-27  1:00                                   ` John Woodruff
2003-12-24 18:48                               ` Simon Wright
2003-12-23 12:39                             ` come from joke (was Re: Other Ada Standards (was Re: SIGada Conference) Vinzent 'Gadget' Hoefler
2003-12-23 15:50                             ` Georg Bauhaus
2003-12-23 16:03                               ` Vinzent 'Gadget' Hoefler
2003-12-23 16:12                               ` Peter Hermann
2003-12-22 18:29                       ` Warren W. Gay VE3WWG
2003-12-20 19:44                   ` tmoran
2003-12-22 18:22                   ` Warren W. Gay VE3WWG
2003-12-20  0:39             ` Russ
2003-12-20  1:44               ` unknown
replies disabled

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