comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: A bad counterintuitive behaviour of Ada about OO
Date: Thu, 7 Aug 2014 10:50:52 +0200
Date: 2014-08-07T10:50:52+02:00	[thread overview]
Message-ID: <bshy1lq2wgj8$.697h5ej1pk6d$.dlg@40tude.net> (raw)
In-Reply-To: b54d73cd-a0ad-4755-9923-f02cfa43f81d@googlegroups.com

On Thu, 7 Aug 2014 00:41:08 -0700 (PDT), Maciej Sobczak wrote:

>> Remember that OO features in practically all OOPL are broken. Ada is the
>> only language I know which implements OO consistently in a properly typed
>> way.
> 
> No way. :-D With type/interface schizophrenia, lack of MI, controlled as a
> base class,

I didn't say "completely", I said "consistently". True, lack of MI and
having first- and second-class types is a serious incompleteness. You can
add lack of full MD to the list, missing delegation support, lack of
abstract interfaces for record, array, access, task, protected types.

> unsafe (!!!) handling of dispatch during
> initialization/finalization

Well, I don't consider Initialize/Finalize stuff as
initialization/finalization. To me it is hack made to avoid serious dealing
with the issue. Thus it is not an inconsistency but an incompleteness of
the Ada initialization/finalization model. It would be possible to add
necessary hooks and leave Initialize/Finalize as is.

More serious is the garbage limited return stuff. That borders
inconsistency and likely crosses the border. A lighter issue is the return
statement which allows multiple initialization-finalization rounds on the
"same" object. Yet another serious issue is renaming to a differently
constrained subtype. That is plain inconsistent.

> and no support for type covariance on return
> type Ada is way more broken than other languages I am aware of.

I don't understand this. The return type is covariant in Ada.

> No trolling here - I really consider the above issues to be problems. OO
> in Ada definitely looks like a patchwork, not a consistent language
> feature.

Yes, but again a patchwork may mean incompleteness or inconsistency (or
both (:-))

To me the most important thing is making classes of types typed. T /=
T'Class. Ada did it. The rest could be fixed, if there were a desire.
Unfortunately, there is none.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

  reply	other threads:[~2014-08-07  8:50 UTC|newest]

Thread overview: 73+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-05 20:09 A bad counterintuitive behaviour of Ada about OO Victor Porton
2014-08-05 20:58 ` Simon Wright
2014-08-05 21:06   ` Victor Porton
2014-08-05 21:51     ` Niklas Holsti
2014-08-05 22:13       ` Victor Porton
2014-08-05 22:35   ` Victor Porton
2014-08-05 23:25     ` Adam Beneschan
2014-08-05 20:59 ` Dmitry A. Kazakov
2014-08-05 21:07   ` Victor Porton
2014-08-05 22:39     ` Shark8
2014-08-05 21:11   ` Victor Porton
2014-08-06  7:26     ` Dmitry A. Kazakov
2014-08-07  7:41       ` Maciej Sobczak
2014-08-07  8:50         ` Dmitry A. Kazakov [this message]
2014-08-08  7:54           ` Maciej Sobczak
2014-08-08  8:14             ` Dmitry A. Kazakov
2014-08-08 13:06               ` Maciej Sobczak
2014-08-08 13:22                 ` Dmitry A. Kazakov
2014-08-08 22:32                   ` Randy Brukardt
2014-08-09 16:11                   ` Maciej Sobczak
2014-08-09 16:48                     ` Dmitry A. Kazakov
2014-08-10 20:55                       ` Maciej Sobczak
2014-08-11  7:41                         ` Dmitry A. Kazakov
2014-08-11  7:58                           ` Maciej Sobczak
2014-08-11  8:23                             ` Dmitry A. Kazakov
2014-08-12  7:50                               ` Maciej Sobczak
2014-08-11 11:35                             ` G.B.
2014-08-08 22:26                 ` Randy Brukardt
2014-08-08  8:34             ` Shark8
2014-08-08 12:59               ` Maciej Sobczak
2014-08-08 22:37                 ` Randy Brukardt
2014-08-08 22:53                   ` Jeffrey Carter
2014-08-07  8:58         ` J-P. Rosen
2014-08-07  9:40           ` Dmitry A. Kazakov
2014-08-07 11:17             ` J-P. Rosen
2014-08-07 12:28               ` Dmitry A. Kazakov
2014-08-07 13:34                 ` J-P. Rosen
2014-08-07 16:10                   ` Dmitry A. Kazakov
2014-08-07 18:14                     ` Robert A Duff
2014-08-07 19:41                       ` Dmitry A. Kazakov
2014-08-07 20:53                         ` Robert A Duff
2014-08-08  7:43                           ` Dmitry A. Kazakov
2014-08-08  8:18                             ` Shark8
2014-08-08  7:45                     ` J-P. Rosen
2014-08-08  8:04                       ` Dmitry A. Kazakov
2014-08-08  8:55                         ` J-P. Rosen
2014-08-08  9:13                           ` Dmitry A. Kazakov
2014-08-08 10:01                             ` J-P. Rosen
2014-08-08 10:53                               ` Dmitry A. Kazakov
2014-08-08 10:56                                 ` Victor Porton
2014-08-08 12:00                                 ` J-P. Rosen
2014-08-08 13:11                                   ` Dmitry A. Kazakov
2014-08-08 13:53                                     ` J-P. Rosen
2014-08-08 20:23                                       ` Dmitry A. Kazakov
2014-08-07 20:29                   ` Shark8
2014-08-08  7:49                     ` J-P. Rosen
2014-08-08  8:12                       ` Shark8
2014-08-08  8:26                         ` Dmitry A. Kazakov
2014-08-08 11:10                           ` Shark8
2014-08-08 11:20                             ` Dmitry A. Kazakov
2014-08-08 19:34                               ` Shark8
2014-08-08 20:23                                 ` Dmitry A. Kazakov
2014-08-07 15:03           ` Jeffrey Carter
2014-08-08  7:48           ` Maciej Sobczak
2014-08-08  8:51             ` J-P. Rosen
2014-08-08 13:25               ` Maciej Sobczak
2014-08-08 13:34                 ` J-P. Rosen
2014-08-08 13:52                   ` Dmitry A. Kazakov
2014-08-08 14:21                     ` J-P. Rosen
2014-08-08 20:23                       ` Dmitry A. Kazakov
2014-08-08 22:08                     ` Randy Brukardt
2014-08-08 22:18                 ` Randy Brukardt
2014-08-06  4:50 ` Per Sandberg
replies disabled

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