comp.lang.ada
 help / color / mirror / Atom feed
From: AdaMagica <christ-usch.grein@t-online.de>
Subject: Re: Ada wikibook help needed (O-O)
Date: Fri, 30 Jun 2017 08:34:34 -0700 (PDT)
Date: 2017-06-30T08:34:34-07:00	[thread overview]
Message-ID: <013cbb16-babe-44e8-b201-5d2afbca26b2@googlegroups.com> (raw)
In-Reply-To: <zZOdnY2MhOuAxcvEnZ2dnUU7-WXNnZ2d@giganews.com>

Am Freitag, 30. Juni 2017 15:54:44 UTC+2 schrieb Norman Worth:
> 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.

I'm with you, I do not like the page's structure either. I wrote part of this, but I shied away from redoing the page from scratch.
Part of this shiness stems from the fact that I have no idea how to structure the page.

So I encourage you to lay out here the structure you would like. We, the Ada fans, can discuss it and fill the flesh to the bones.

To the definitions of OO and especially OOP: There is no commonly accepted definition, as far as I can see. Every language has its own nomenclature. A class in Ada is very different from a class in Java or C++. C++'s methods are primitive operations in Ada. And why should we follow the historical definitions going back to Simula?

      reply	other threads:[~2017-06-30 15:34 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
2017-06-30 15:34   ` AdaMagica [this message]
replies disabled

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