comp.lang.ada
 help / color / mirror / Atom feed
From: "Yannick Duchêne (Hibou57)" <yannick_duchene@yahoo.fr>
Subject: Re: Do people who use Ada also use ocaml or F#?
Date: Sun, 31 Oct 2010 16:32:57 +0100
Date: 2010-10-31T16:32:57+01:00	[thread overview]
Message-ID: <op.vlf5g7q6ule2fv@garhos> (raw)
In-Reply-To: jzzcr6eu4wf4$.19xguu0qks0zu$.dlg@40tude.net

Le Sun, 31 Oct 2010 16:07:10 +0100, Dmitry A. Kazakov  
<mailbox@dmitry-kazakov.de> a écrit:
>> You can build new components that use other components, hence you can
>> call it aggregation, but this is hidden in the body, so nobody cares,
>> it's not visible; unlike inheritance where the whole dependency has to
>> be visible.
>
> But reusable components are visible as well, e.g. a list [component 1] of
> arrays [component 2] of something [component 3].
Yes, they are also visible, but the visibility you need to have is not the  
same. Visibility here, does not really mean “what is visible”, instead it  
means “what needs to viewed”.

With composition, you just need to see the interfaces and what is directly  
connected to these interfaces, i.e. what you need to view is what is made  
of an exploration of the direct environment. With Inheritance, the  
exploration must be transitive, can go far and/or apply to many types,  
i.e. there is no real local circumscription of consequences, as what is at  
one place, may be visible from all the places where the inheritance graph  
can lead you from the original places (that is the meaning of “visible”  
here).

This can be powerful, as much as it can damage the whole system.

To talk using a picture : there are the kind of messages/mails/etc you  
will see no objection to broadcast, and there is the kind of you would  
avoid to. Something a bit similar applies (propagation). There are  
sensible things which should not be propagated through an Inheritance  
graph (which virtually has no limit), there are other for which you will  
not bother.

To say Composition is the only good way to go, would be extremist; but you  
can safely say, using Composition, you will avoid many potential troubles.  
The most secure you want to be with your design, the most you will use  
Composition. And if the power of Inheritance is used, you will have to  
carefully balance what you are throwing potentially far away (at least you  
may want to avoid for likely bombs, but you will not bother for fancy  
stuffs).

-- 
Si les chats miaulent et font autant de vocalises bizarres, c’est pas pour  
les chiens.



  reply	other threads:[~2010-10-31 15:32 UTC|newest]

Thread overview: 78+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-29  2:27 Do people who use Ada also use ocaml or F#? Chad  R. Meiners
2010-10-29  2:58 ` Yannick Duchêne (Hibou57)
2010-10-30  1:32   ` Chad  R. Meiners
2010-10-30  2:22     ` Yannick Duchêne (Hibou57)
2010-10-30  3:44       ` Chad  R. Meiners
2010-10-30 12:15     ` Georg Bauhaus
2010-10-30 12:14   ` Florian Weimer
2010-10-30 12:46     ` Yannick Duchêne (Hibou57)
2010-10-30 13:59       ` Florian Weimer
2010-10-30 14:12       ` Niklas Holsti
2010-10-30 18:58         ` Yannick Duchêne (Hibou57)
2010-10-30 19:20           ` Georg Bauhaus
2010-10-30 23:11           ` Jeffrey Carter
2010-10-31 15:13             ` Florian Weimer
2010-10-29  7:53 ` Dmitry A. Kazakov
2010-10-29 17:10   ` Yannick Duchêne (Hibou57)
2010-10-29 19:10     ` Dmitry A. Kazakov
2010-10-29 22:16   ` Jeffrey Carter
2010-10-30  0:01     ` Vinzent Hoefler
2010-10-30  2:07       ` Chad  R. Meiners
2010-10-30 23:02         ` Jeffrey Carter
2010-10-30 23:30           ` Yannick Duchêne (Hibou57)
2010-10-31  2:31             ` Jeffrey Carter
2010-10-31  2:58               ` Yannick Duchêne (Hibou57)
2010-10-31 10:57                 ` J-P. Rosen
2010-10-31 11:04                   ` Yannick Duchêne (Hibou57)
2010-10-31 16:58                 ` Jeffrey Carter
2010-11-01 17:46                 ` Colin Paul Gloster
2010-11-01 17:03                   ` Vinzent Hoefler
2010-11-03 13:30                     ` Colin Paul Gloster
2010-11-03 19:16                       ` Yannick Duchêne (Hibou57)
2010-10-30  7:41     ` Dmitry A. Kazakov
2010-10-30 23:08       ` Jeffrey Carter
2010-10-30 23:15         ` Vinzent Hoefler
2010-10-31  2:36           ` Jeffrey Carter
2010-10-31  3:01             ` Yannick Duchêne (Hibou57)
2010-10-31  4:52               ` Jeffrey Carter
2010-10-31  5:12                 ` Yannick Duchêne (Hibou57)
2010-10-31  7:38         ` Dmitry A. Kazakov
2010-10-31  8:03           ` Yannick Duchêne (Hibou57)
2010-10-31  8:14             ` Dmitry A. Kazakov
2010-10-31 11:00           ` J-P. Rosen
2010-10-31 11:17             ` Dmitry A. Kazakov
2010-10-31 12:51               ` J-P. Rosen
2010-10-31 15:07                 ` Dmitry A. Kazakov
2010-10-31 15:32                   ` Yannick Duchêne (Hibou57) [this message]
2010-10-31 20:00                     ` Dmitry A. Kazakov
2010-10-31 20:04                       ` Yannick Duchêne (Hibou57)
2010-10-31 20:19                         ` Dmitry A. Kazakov
2010-10-31 18:23                   ` Jeffrey Carter
2010-10-31 18:02           ` Jeffrey Carter
2010-10-30  2:07   ` Chad  R. Meiners
2010-10-30  2:29     ` Yannick Duchêne (Hibou57)
2010-10-30  3:55       ` Chad  R. Meiners
2010-10-30  7:49     ` Dmitry A. Kazakov
2010-10-30 12:18   ` Florian Weimer
2010-10-30 12:59     ` Dmitry A. Kazakov
2010-10-30 19:12       ` Yannick Duchêne (Hibou57)
2010-10-30 19:37         ` Dmitry A. Kazakov
2010-10-30 20:04           ` Yannick Duchêne (Hibou57)
2010-10-30 20:54             ` Dmitry A. Kazakov
2010-10-30 21:53               ` Yannick Duchêne (Hibou57)
2010-10-31  8:12                 ` Dmitry A. Kazakov
2010-10-31  9:49                   ` Yannick Duchêne (Hibou57)
2010-10-31 21:46           ` Shark8
2010-11-01  9:32             ` Dmitry A. Kazakov
2010-11-01 10:17               ` Florian Weimer
2010-11-05 12:46               ` Robert A Duff
2010-11-05 16:39                 ` Dmitry A. Kazakov
2010-11-06 17:22                 ` Stephen Leake
2010-11-06 20:56                   ` Robert A Duff
2010-11-06 23:03                     ` Dmitry A. Kazakov
2010-11-06 23:41                       ` Yannick Duchêne (Hibou57)
2010-11-07  0:18                       ` Yannick Duchêne (Hibou57)
2010-11-07 11:51                       ` Simon Wright
2010-11-07 12:14                         ` Dmitry A. Kazakov
2010-11-07  3:05                   ` Chad  R. Meiners
2010-11-01 11:44             ` Brian Drummond
replies disabled

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