From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,63a41ccea0fc803a X-Google-Attributes: gid103376,public From: Matthew Heaney Subject: Re: Naming of Tagged Types and Associated Packages Date: 1998/08/04 Message-ID: #1/1 X-Deja-AN: 377757844 Sender: matt@mheaney.ni.net References: <6pdhfo$1br$1@platane.wanadoo.fr><6pi71p$n90$1@platane.wanadoo.fr><6ppc3q$8ju$1@platane.wanadoo.fr> <6ps2ne$hko$1@platane.wanadoo.fr> <35C2E4C9.35441249@wanadoo.fr> NNTP-Posting-Date: Tue, 04 Aug 1998 00:57:45 PDT Newsgroups: comp.lang.ada Date: 1998-08-04T00:00:00+00:00 List-Id: Jean-Pierre Rosen writes: > Of course, we are discussing style here, so it's a matter of taste. > As I mentionned before, I agree with you (and generally use) a "closed" > style, and I try to keep inheritance as hidden as possible. However the > purpose of this thread was to discuss a notation for those who want pure > OO programming, and pure OO means a lot of visibility! Quoting Booch > (from memory): > "There is a very real tension between encapsulation and inheritence. To > a large degree, inheritance exposes the secrets of the inherited class, > sometimes including their inside view". A great quote that hints at the pitfalls of inheritance from a systems point of view. Visibility implies coupling, and coupling is bad. Very, very bad. An even better source is your own ACM paper "What orientation should Ada objects take?" It bravely challenges current dogma about inheritance as a mechanism for the composition of abstractions. (Thank you - I was cheering when I read it!) Everyone should also read "The Architecture of Complexity," by Herb Simon. It appears as a chapter in his book Sciences of the Artificial. Yes, the question might be "What naming convention do I use to effect pure OO programming in Ada 95?" But maybe we should be asking ourselves instead, "What is the simplest way to construct software systems using Ada 95?" If the system is modifiable and extensible, with minimal coupling among the parts, then should we really care whether a "pure OO" approach was used? Who even knows what "pure OO" means?