comp.lang.ada
 help / color / mirror / Atom feed
From: Norman Worth <nworth@comcastNOSPAM.net>
Subject: Re: Ada wikibook help needed (O-O)
Date: Fri, 30 Jun 2017 07:54:37 -0600
Date: 2017-06-30T07:54:37-06:00	[thread overview]
Message-ID: <zZOdnY2MhOuAxcvEnZ2dnUU7-WXNnZ2d@giganews.com> (raw)
In-Reply-To: <odhv2v$9vi$1@dont-email.me>

G.B. wrote:
> Hi all,
>
> for a number of years, the Wikibook subsection on O-O in Ada
> seems to have suffered from lack of clarity, according to a number
> of comments still present, a few written a number of years ago.
>
> Some here may say that this state of presentation is caused by
> Ada using type extension and so forth in the first place.
> But still, if the book does place Ada in contrast with C++,
> say, or explains Ada O-O, then it should be possible to
> precisely use Ada vocabulary to make readers profit by adding
> unmistakable carity.
>
> https://en.wikibooks.org/wiki/Ada_Programming/Object_Orientation
>
> If you have a moment, could you kindly substantiate whether or not,
> e.g.,  the following are absolutely and demonstrably correct and well put?
>
>
> The page goes to some length to explain static dispatching
> vs. dynamic dispatching, but fails to introduce "dispatching"
> first, as a term, or to reference some suitable definition.
> Then,
>
>   "A conversion to the class-wide type makes [components] visible again."
>
> Is "visible" correct?
>
>
> Is it correct to say “static call” at all, other than when waving hands,
> (not helpfully IMHO) in
>
>   "within Op1, the first call to Op2 is therefore also a static call "
>
> where
>
>  procedure Op1 (This: Root) is
>  begin
>    ...
>    Op2 (This);               -- not redispatching
>    ...
>  end Op1;
>
> The idea being that “static call” is not really defined in Ada AFAICT,
> other than to mean a call of a static function in a static expression.
> So, not the same thing as discussing O-O, or static binding,
> or dynamic dispatch.
>
>
>    "In other OO languages, a method is either dispatching or not.
>     In Ada, a routine is either _available_ for dispatching or not. "
>
> The wording of LRM N(28) seems to not be in line with the second
> of these  statements.
>
> ...
I agree; this section is very poorly written from top to bottom.  Others 
have commented on Ada language technical problems with the article, but 
the worst problems stem from its English structure.  Most textbooks do a 
far better job.  We need to build the article from simple definitions 
and contexts through simple Ada constructs until we have explained the 
Ada philosophy for OOP and given adequate examples.  It needn't be too 
complicated, but it should be complete.  Here, even the definitions of 
OOP and OO design are unclear and do not follow the historical and 
common definitions. The section should be scrapped and rewritten, rather 
than revised.  I would tackle it, but I don't feel sufficiently 
experienced in Ada OOP to do so.

  parent reply	other threads:[~2017-06-30 13:54 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-23 10:22 Ada wikibook help needed (O-O) G.B.
2017-04-23 10:52 ` Dmitry A. Kazakov
2017-04-23 16:09   ` G.B.
2017-04-23 17:03     ` Dmitry A. Kazakov
2017-04-24  5:13       ` G.B.
2017-04-24  7:55         ` Dmitry A. Kazakov
2017-04-24 12:34     ` Jacob Sparre Andersen
2017-04-24 22:06   ` Randy Brukardt
2017-04-24 22:03 ` Randy Brukardt
2017-06-30 13:54 ` Norman Worth [this message]
2017-06-30 15:34   ` AdaMagica
replies disabled

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