comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Ada design bug or GNAT bug?
Date: Thu, 2 Jul 2015 17:06:55 -0500
Date: 2015-07-02T17:06:55-05:00	[thread overview]
Message-ID: <mn4jj1$n50$3@loke.gir.dk> (raw)
In-Reply-To: 58f64fa9-7d0b-44dd-870c-77d9afcb82c4@googlegroups.com

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 2051 bytes --]


<vincent.diemunsch@gmail.com> wrote in message 
news:58f64fa9-7d0b-44dd-870c-77d9afcb82c4@googlegroups.com...
Le lundi 22 juin 2015 20:27:17 UTC+2, Shark8 a écrit :
>>
>> Yes, anonymous accesses ARE pretty bad.
>> But this does bring up the question: what missteps have been made in 
>> Ada's design?
>>
>
>I regard the refusal to create a "class type", like Ichbiah wanted it, just 
>like we have a
> protected type and a task type, as the root of evil.

The type Ichbiah wanted was syntactic sugar only. The semantics would have 
been very similar to that of tagged types. The primary difference would have 
been that we wouldn't have had to wait for Ada 2005 to get prefix calls.

> For the OOP concept is based on
> an interface that is the same and instances that are different 
> realizations of the same
> concept. So we need to have two objects :
>- a class object that is an interface and manage memory (a descendant of 
>controlled type)
>- an instance object that is polymorphic.
>
>One may think that the distinction between class type and tagged type is 
>subtle, but the
>implications of it are huge : without class object one needs as replacement 
>access to a
>class wide type. This has led to the use of access values everywhere when 
>doing OOP.
>To ease the pain access parameters and anonymous access types were 
>introduced...

This seems to me to be nonsense. There's no need to use access types in Ada 
OOP interfaces; "in out T" and "access T" have virtually the same semantics 
when T is a tagged type. (Claw only has one access type in its entire 
interface, used for a return type that ought to be by reference. Everything 
else does not use visible access types.) It's more work this way, but it's 
definitely possible.

The reason Ada has anonymous access parameters was a desire (for Ada 9x) 
that code from existing OOP languages like C++ could be directly converted 
to Ada without having to think at all (thinking being necessary to get rid 
of access types).

                                               Randy.



  parent reply	other threads:[~2015-07-02 22:06 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-20 18:55 Ada design bug or GNAT bug? Dmitry A. Kazakov
2015-06-21  2:42 ` Randy Brukardt
2015-06-21  6:47   ` Dmitry A. Kazakov
2015-06-22 17:39     ` Randy Brukardt
2015-06-22 18:16       ` Dmitry A. Kazakov
2015-06-23 11:00         ` G.B.
2015-06-23 14:27           ` Dmitry A. Kazakov
2015-06-23 11:45         ` G.B.
2015-06-23 14:30           ` Dmitry A. Kazakov
2015-07-02 22:22         ` Randy Brukardt
2015-07-03  8:02           ` Dmitry A. Kazakov
2015-07-03 17:33             ` Randy Brukardt
2015-07-03 21:34               ` Dmitry A. Kazakov
2015-07-04  3:11                 ` Randy Brukardt
2015-07-04 12:14                   ` Dmitry A. Kazakov
2015-07-05  0:53                     ` Randy Brukardt
2015-06-22 18:27       ` Shark8
2015-06-23 11:51         ` vincent.diemunsch
2015-06-23 19:55           ` Shark8
2015-06-23 13:06         ` vincent.diemunsch
2015-06-23 14:30           ` David Botton
2015-06-23 15:57             ` Niklas Holsti
2015-06-23 16:01               ` G.B.
2015-06-23 18:05               ` David Botton
2015-06-23 19:38               ` David Botton
2015-06-23 14:38           ` Dmitry A. Kazakov
2015-06-23 16:57             ` Vincent
2015-06-23 17:15               ` Dmitry A. Kazakov
2015-06-23 19:14                 ` vincent.diemunsch
2015-06-23 19:33                   ` Dmitry A. Kazakov
2015-06-23 17:42           ` Jeffrey R. Carter
2015-07-02 22:06           ` Randy Brukardt [this message]
2015-07-04  1:52             ` Shark8
2015-07-04  3:24               ` Randy Brukardt
2015-07-04 11:02                 ` Build-in-place semantics? (Was: Ada design bug or GNAT bug?) Jacob Sparre Andersen
2015-07-04 12:15                   ` Dmitry A. Kazakov
2015-07-05  0:45                     ` Randy Brukardt
2015-07-05  7:10                       ` Dmitry A. Kazakov
2015-07-05  0:40                   ` Randy Brukardt
2015-07-04 14:05                 ` Ada design bug or GNAT bug? Bob Duff
2015-07-04  7:46               ` Simon Wright
2015-07-04 12:00                 ` Björn Lundin
2015-07-05  0:48                   ` Randy Brukardt
2015-07-06 12:37             ` Vincent
2015-07-06 20:05               ` Randy Brukardt
2015-07-07  8:06               ` Dmitry A. Kazakov
replies disabled

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