comp.lang.ada
 help / color / mirror / Atom feed
From: Richard Riehle <richard@adaworks.com>
Subject: Re: 'withing' problem
Date: Sat, 03 Nov 2001 09:27:28 -0800
Date: 2001-11-03T17:23:20+00:00	[thread overview]
Message-ID: <3BE42900.7590E899@adaworks.com> (raw)
In-Reply-To: x7vofmki7mm.fsf@smaug.pushface.org

Simon Wright wrote:

> If you are coming from a UML-based modelling environment,
> cross-dependency is entirely natural. It would be quite wrong to
> contort the model to cope with Ada's unfortunate limitations in this
> respect.

Funny.  I don't regard the current context clause (with) as a problem,
when one is designing in Ada.    It is most certainly not an "unfortunate
limitation."    Rather, the grumbling about it most often reflects a lack
of understanding, or acceptance, of the very strict visibility rules of
the language.   As to the potential for circular context clauses, these
need not exist when one correctly designs in Ada.

When I first learned Ada, what seems now many lifetimes ago, I was
annoyed by the recurring errors I would have due to visibility issues.
The compiler kept bothering me with nasty messages about this.  In
time, I came to appreciate that one of Ada's primary strengths is in
is separation scope and visibility.   Now I realize that those visibility
rules are essential in reasoning about good design.

More Ada programmers have problems with visibility rules than with
any other feature of the language.   Some will go for years, designing
and coding in Ada, and never come to terms with the visibility rules.
I am reminded of first learning to use a rotating brush floor buffer for
a part-time job in high-school.  The brushes rotate over the floor in
their own way.   When I struggled to overpower the rotating brushes,
I could not succeed.   Once I learned how to balance the brushes
lightly, and guide them across the floor according to their own
behavior, I could control the machine with one finger.   Struggling
with the context clause and visibility rules is much the same.  Learning
to use those rules, they make the Ada software design
process easy and fun.  Try to defeat them and the process is
hard and unpleasant.

Richard Riehle





  reply	other threads:[~2001-11-03 17:27 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-11-02 10:24 'withing' problem David Crocker
2001-11-02 10:58 ` David C. Hoos, Sr.
2001-11-02 21:32   ` Florian Weimer
2001-11-02 14:49 ` Robert Dewar
2001-11-05  9:49   ` David Crocker
2001-11-02 15:06 ` Wes Groleau
2001-11-02 15:21 ` Ted Dennison
2001-11-02 17:19   ` Ed Falis
2001-11-02 18:17     ` Preben Randhol
2001-11-02 19:15       ` Ed Falis
2001-11-03  2:52       ` DuckE
2001-11-03  9:50         ` Preben Randhol
2001-11-03  8:25   ` Simon Wright
2001-11-03 17:27     ` Richard Riehle [this message]
2001-11-04 10:23       ` Simon Wright
2001-11-08 10:58         ` Preben Randhol
2001-11-08 15:24           ` Peter Hend�n
2001-11-10 17:57           ` Simon Wright
2001-11-05  9:48       ` David Crocker
2001-11-05 20:36         ` Ted Dennison
2001-11-06 15:56           ` David Crocker
2001-11-07 15:06             ` Ted Dennison
2001-11-07 16:49               ` Darren New
2001-11-09 20:28         ` Matthew Heaney
2001-11-10 13:55           ` Preben Randhol
2001-11-12 15:10             ` Matthew Heaney
2001-11-10 18:12           ` Simon Wright
2001-11-12 15:13             ` Matthew Heaney
2001-11-13  7:01               ` Simon Wright
2001-11-14 16:10                 ` Matthew Heaney
2001-11-15 20:21                   ` Simon Wright
2001-11-15 21:07                     ` Matthew Heaney
2001-11-16 14:37                     ` Stephen Leake
2001-11-17 22:29                     ` Richard Riehle
2001-11-18 14:53                       ` Simon Wright
2001-11-19  5:51                         ` Simon Wright
2001-11-19 15:23                         ` Matthew Heaney
2001-11-19 17:19                           ` 'withing' problem [code generation] Mark Johnson
2001-11-19 20:58                             ` Stephen Leake
2001-11-19 21:20                               ` Matthew Heaney
2001-11-21  6:20                                 ` Simon Wright
2001-11-20  0:50                               ` Mark Biggar
2001-11-21  6:21                                 ` Simon Wright
2001-11-20 14:42                               ` Mark Johnson
2001-11-20 16:34                                 ` David Crocker
2001-11-20 18:34                                   ` Richard Pinkall-Pollei
2001-11-20 18:43                                   ` Matthew Heaney
2001-11-20 20:37                                     ` Mark Lundquist
2001-11-22 11:49                                     ` David Crocker
2001-11-20 20:35                                   ` Mark Lundquist
2001-11-22 11:42                                     ` David Crocker
2001-11-19 19:30                           ` 'withing' problem Preben Randhol
2001-11-03  8:26 ` Simon Wright
2001-11-03  8:38 ` Simon Wright
2001-11-05  9:54   ` David Crocker
2001-11-05 18:04     ` tmoran
2001-11-06 15:29       ` David Crocker
2001-11-07  0:38         ` tmoran
2001-11-07 10:11           ` David Crocker
2001-11-07 18:59             ` tmoran
2001-11-08 11:38               ` David Crocker
2001-11-10 18:03                 ` Simon Wright
replies disabled

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