From: "S. Tucker Taft" <stt@inmet.com>
Subject: Re: An observation of Ada (may offend)
Date: Mon, 20 Mar 1995 03:23:18 GMT
Date: 1995-03-20T03:23:18+00:00 [thread overview]
Message-ID: <D5pyqu.p9@inmet.camb.inmet.com> (raw)
In-Reply-To: 3kcflv$164a@watnews1.watson.ibm.com
ncohen@watson.ibm.com (Norman H. Cohen) wrote:
>
> In article <3kbkm1$41o@miranda.gmrc.gecm.com>, bill@valiant.gmrc.gecm.com
> (R.A.L Williams) writes:
>...
> |> h. And a special one for Ada95: poor encapsulation of objects. I can
> |> define a 'member function' for a class by including the class in the
> |> parameter list. Unlike C++ or Eiffel, I can do this *anywhere* in my code,
> |> even a nested function hidden somewhere seemingly 'irrelevant'. Whereas
> |> other features of Ada go out of their way to force the programmer to
> |> follow 'good practice' (sometimes a matter of opinion), this seems
> |> very lax.
> ...
>
> If there is a weakness in Ada encapsulation, it has nothing to do with
> parameter lists, but with the definition of "logically within the
> defining unit". Anyone can write a child package that is "logically
> within the defining unit". (Do-While Jones once called this the "Howard
> Hughes effect": strangers claiming to be your heirs.) Child units enjoy
> access analogous to that permitted for C++ protected members in a
> subclass of a definining class. Thus the strongest degree of hiding that
> Ada can provide is that of C++ "protected", not C++ "private".
By putting a declaration in a nested package private part, or in
the package body, you achieve hiding as effective as C++ "private."
When introducing Ada 95 to C++ programmers, I generally explain that
Ada has three levels of visibility control, analagous to the three in
C++ -- the visible part of a package (visible to all), the private
part of the package (visible to children), and the package body
(visible to the package body itself only). Most C++ programmers
are a bit jealous of the ability to define in Ada 95 additional
local subprograms in a package body without having to disturb the
spec. In C++, you have to edit the class spec to add private
member functions (or play games with "friends").
> Norman H. Cohen ncohen@watson.ibm.com
-Tucker Taft stt@inmet.com
Intermetrics, Inc.
next prev parent reply other threads:[~1995-03-20 3:23 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
1995-03-17 9:27 An observation of Ada (may offend) R.A.L Williams
1995-03-17 15:23 ` Robb Nebbe
1995-03-17 17:08 ` Norman H. Cohen
1995-03-20 3:23 ` S. Tucker Taft [this message]
1995-03-20 10:13 ` Robb Nebbe
1995-03-21 21:05 ` Robert Dewar
1995-03-20 16:15 ` Robert I. Eachus
1995-03-21 19:47 ` Norman H. Cohen
1995-03-22 1:28 ` David Weller
1995-03-23 5:47 ` Robert Dewar
1995-03-23 16:38 ` Robert I. Eachus
1995-03-24 10:46 ` Peter Hermann
1995-03-24 16:52 ` David Weller
1995-03-26 4:03 ` Robert Dewar
1995-03-24 21:33 ` Tucker Taft
1995-03-27 9:59 ` Child packages Robb Nebbe
1995-03-28 1:11 ` Keith Thompson
1995-03-28 11:54 ` Keith Thompson
1995-03-27 18:58 ` An observation of Ada (may offend) Mark A Biggar
1995-03-24 19:45 ` Garlington KE
1995-03-27 19:58 ` Robert I. Eachus
1995-03-28 16:29 ` Garlington KE
1995-03-28 19:30 ` Robert I. Eachus
1995-03-28 22:37 ` Garlington KE
1995-03-29 8:31 ` Robb Nebbe
1995-03-25 17:58 ` Robert Dewar
1995-03-26 6:20 ` R_Tim_Coslet
1995-03-27 20:38 ` Robert I. Eachus
1995-03-26 3:50 ` celier
[not found] ` <3l1lkq$pm6@gnat.csn <3l2o9a$3a1@infomatch.com>
1995-03-27 23:16 ` Robert Dewar
1995-03-23 18:05 ` John DiCamillo
1995-03-17 23:01 ` Larry Kilgallen, LJK Software
1995-03-18 12:41 ` Tucker Taft
1995-03-22 16:50 ` Renaud HEBERT
1995-03-23 23:23 ` John Volan
1995-03-24 0:38 ` Robert Dewar
-- strict thread matches above, loose matches on Subject: below --
1995-03-30 0:00 R.A.L Williams
1995-04-03 0:00 ` Norman H. Cohen
1995-03-29 0:00 R.A.L Williams
1995-03-27 10:38 R.A.L Williams
1995-03-30 3:14 ` Michael D. Griffin
1995-03-30 0:00 ` David Weller
1995-04-04 0:00 ` Jack Beidler
1995-04-04 0:00 ` Brian Rogoff
1995-03-27 10:28 R.A.L Williams
1995-03-27 0:00 ` Norman H. Cohen
1995-04-04 0:00 ` Robert Dewar
1995-03-28 17:07 ` Larry Kilgallen, LJK Software
1995-03-12 23:39 Matt Bruce
1995-03-13 0:34 ` David Weller
1995-03-14 4:49 ` Vladimir Vukicevic
1995-03-17 17:00 ` Michael Feldman
1995-03-17 13:09 ` Fred J. McCall
1995-03-18 20:34 ` Michael Feldman
1995-03-19 22:20 ` Robert Dewar
1995-03-20 17:19 ` Michael Feldman
1995-03-21 21:02 ` Robert Dewar
1995-03-21 23:01 ` Kevin F. Quinn
1995-03-22 12:43 ` Mike Meier
1995-03-20 20:38 ` Kevin F. Quinn
1995-03-21 3:02 ` Michael M. Bishop
1995-03-20 9:31 ` Robb Nebbe
1995-03-20 20:16 ` Mats Weber
1995-03-22 19:44 ` Stephen McNeill
1995-03-28 14:48 ` Wes Groleau
1995-03-22 17:20 ` Richard G. Hash
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox