comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: How come Ada isn't more popular?
Date: Sat, 10 Feb 2007 16:54:44 +0100
Date: 2007-02-10T16:54:27+01:00	[thread overview]
Message-ID: <zu3b42vy4sn3$.1q88lq0mdid7t$.dlg@40tude.net> (raw)
In-Reply-To: wccejoy405o.fsf@shell01.TheWorld.com

On Sat, 10 Feb 2007 08:22:59 -0500, Robert A Duff wrote:

> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes:
> 
>> On Fri, 9 Feb 2007 22:18:51 -0600, Randy Brukardt wrote:
>>
>>> Dmitry A. Kazakov writes:
>>> ...
>>>> Because it does not compose upon inheritance and aggregation.
>>>>
>>>> When inherited the constructing function need to be overridden, even if
>>>> null record was the only thing added.
>>> 
>>> That's not true in Ada 2007. (That's a change I strongly opposed, BTW,
>>> because it makes prototyping much harder. I usually start an extension with
>>> a null record, figure out what needs to be overridden (giving those null
>>> bodies), and then implement the actual routines and data. This no longer
>>> works, because as soon as you add an extension component you are back to
>>> square one.)
>>
>> Yuck. Do I understand correctly, primitive operations are no more covariant
>> in the result?
>>
>>    type T is tagged ...;
>>    function Foo return T;
>>
>>    type S is new T ...;
>>       -- I don't need to override Foo????
> 
> It depends what the "..." is.  You don't need to override Foo if it's
> "with null record", which is what you were wanting above ("even if ...").

No, I didn't mean that. "Even if" was related to the model where
constructors were functions. This model is sometimes unnatural and the
requirement to override constructing function is a consequence of this
unnaturalness to me.

As for covariant functions, IMO the initial Ada 95 design is absolutely
correct, because whether a record was physically extended or not looks much
like an implementation detail to me. [*]

Constructors need not to be overridden when there is a way to generate them
safely. Though, I must admit that the difference looks too subtle.

---------
* Ideally, when deriving the programmer should be able to specify his
intent: whether the new type is equivalent, a generalization (extension), a
specialization (constraining) or both/neither. 

For generalization all primitive operations with out, in out parameters and
results of the base type should be required to be overridden.

For specialization all primitive operations with in and in out parameters
should be overridden.

For both everything need to be overridden.

(for overriding with the same body one could provide some syntax sugar)

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



  reply	other threads:[~2007-02-10 15:54 UTC|newest]

Thread overview: 282+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-02-10  4:18 How come Ada isn't more popular? Randy Brukardt
2007-02-10  9:15 ` Dmitry A. Kazakov
2007-02-10 13:22   ` Robert A Duff
2007-02-10 15:54     ` Dmitry A. Kazakov [this message]
2007-02-12 14:23       ` Robert A Duff
2007-02-12 15:49         ` Dmitry A. Kazakov
  -- strict thread matches above, loose matches on Subject: below --
2007-01-23  5:53 artifact.one
2007-01-23  6:37 ` adaworks
2007-01-23  6:50   ` artifact.one
2007-01-23 14:24   ` Arthur Evans Jr
2007-01-23 20:11     ` Jeffrey R. Carter
2007-01-23 21:14       ` Markus E Leypold
2007-01-23 15:23   ` Ed Falis
2007-01-23 20:09   ` Jeffrey R. Carter
2007-01-24  8:50     ` Dmitry A. Kazakov
2007-01-24 20:23       ` Jeffrey R. Carter
2007-01-24 11:06     ` gautier_niouzes
2007-01-24 19:25       ` tmoran
2007-01-25  4:46         ` Gautier
2007-01-25  9:29           ` Markus E Leypold
2007-01-27 16:59             ` Stephen Leake
2007-01-27 20:40               ` Markus E Leypold
2007-01-27 21:19                 ` Markus E Leypold
2007-01-28  8:44                   ` Ray Blaak
2007-01-29  8:56                 ` Maciej Sobczak
2007-01-29 14:21                   ` Markus E Leypold
2007-01-31  9:23                     ` Maciej Sobczak
2007-01-31 10:24                       ` Markus E Leypold
2007-02-02  8:42                         ` Maciej Sobczak
2007-02-02  9:32                           ` Alex R. Mosteo
2007-02-02 11:04                             ` Maciej Sobczak
2007-02-02 13:57                           ` Markus E Leypold
2007-02-03  9:44                             ` Dmitry A. Kazakov
2007-02-03 14:51                               ` Markus E Leypold
2007-02-04 17:55                                 ` Dmitry A. Kazakov
2007-02-04 20:18                                   ` Markus E Leypold
2007-02-04 21:29                                     ` Dmitry A. Kazakov
2007-02-04 22:33                                       ` Markus E Leypold
2007-02-05  9:20                                         ` Dmitry A. Kazakov
2007-02-05 12:16                                           ` Harald Korneliussen
2007-02-05 14:06                                             ` Dmitry A. Kazakov
2007-02-05 13:53                                           ` Markus E Leypold
2007-02-05  9:59                             ` Maciej Sobczak
2007-02-05 13:43                               ` Markus E Leypold
2007-02-06  9:15                                 ` Maciej Sobczak
2007-02-06 11:45                                   ` Markus E Leypold
2007-02-06 14:16                                     ` Maciej Sobczak
2007-02-06 15:44                                       ` Markus E Leypold
2007-02-06 17:40                                         ` Dmitry A. Kazakov
2007-02-07  8:55                                         ` Maciej Sobczak
2007-02-07 10:10                                           ` Georg Bauhaus
2007-02-07 10:56                                           ` Markus E Leypold
2007-02-07 22:58                                             ` Georg Bauhaus
2007-02-08  9:04                                             ` Maciej Sobczak
2007-02-08 10:01                                               ` Markus E Leypold
2007-02-06 17:47                                       ` Ray Blaak
2007-02-06 18:05                                         ` Dmitry A. Kazakov
2007-02-06 18:28                                           ` Markus E Leypold
2007-02-07  7:54                                           ` Maciej Sobczak
2007-02-07  9:42                                             ` Markus E Leypold
2007-02-08  8:10                                               ` Maciej Sobczak
2007-02-08 18:14                                             ` Dmitry A. Kazakov
2007-02-09  8:17                                               ` Maciej Sobczak
2007-02-09 14:02                                                 ` Dmitry A. Kazakov
2007-02-09 18:08                                                   ` Ray Blaak
2007-02-09 18:43                                                     ` Dmitry A. Kazakov
2007-02-09 18:57                                                       ` Ray Blaak
2007-02-09 18:03                                                 ` Ray Blaak
2007-02-09 18:47                                                   ` Randy Brukardt
2007-02-09 19:02                                                     ` Ray Blaak
2007-02-09 19:35                                                       ` Randy Brukardt
2007-02-09 19:52                                                         ` Ray Blaak
2007-02-12  7:20                                                           ` Harald Korneliussen
2007-02-12 14:12                                                             ` Robert A Duff
2007-02-09 22:11                                                         ` Markus E Leypold
2007-02-09 22:05                                                     ` Markus E Leypold
2007-02-10  1:31                                                       ` Randy Brukardt
2007-02-10  2:18                                                         ` Markus E Leypold
2007-02-05 19:05                               ` Ray Blaak
2007-02-09  8:01                           ` adaworks
2007-02-09  9:07                             ` Jean-Pierre Rosen
2007-02-09 10:36                               ` Maciej Sobczak
2007-02-09 12:50                                 ` Robert A Duff
2007-02-09 14:02                                   ` Dmitry A. Kazakov
2007-02-10 18:21                                     ` adaworks
2007-02-10 18:41                                       ` Markus E Leypold
2007-02-10 20:29                                       ` Dmitry A. Kazakov
2007-02-09 14:12                                   ` Maciej Sobczak
2007-02-09 19:41                                     ` Randy Brukardt
2007-02-12  9:07                                       ` Maciej Sobczak
2007-02-12 20:56                                         ` Randy Brukardt
2007-02-13  9:02                                           ` Maciej Sobczak
2007-02-14 10:12                                           ` Dmitry A. Kazakov
2007-02-09  9:21                             ` Markus E Leypold
2007-01-25 21:42           ` Randy Brukardt
2007-01-28 19:32             ` Gautier
2007-01-30 19:41               ` tmoran
2007-01-25 22:21           ` Jeffrey R. Carter
2007-01-25 11:31   ` Ali Bendriss
2007-01-27  5:12     ` Charles D Hixson
2007-01-27  9:52       ` Markus E Leypold
2007-01-27 22:01         ` Charles D Hixson
2007-01-27 23:24           ` Markus E Leypold
2007-01-28  9:14             ` Dmitry A. Kazakov
2007-01-28 15:06               ` Markus E Leypold
2007-01-29 14:37                 ` Dmitry A. Kazakov
2007-01-29 15:50                   ` Markus E Leypold
2007-01-30 19:58                     ` Robert A Duff
2007-01-30 21:52                       ` Markus E Leypold
2007-01-31 22:49                         ` Robert A Duff
2007-01-31 23:07                           ` (see below)
2007-01-31 23:18                             ` Robert A Duff
2007-01-31 23:36                               ` (see below)
2007-02-01  7:57                           ` Markus E Leypold
2007-01-31 17:49                       ` Ed Falis
2007-01-31 22:53                         ` Robert A Duff
2007-01-31 10:55                     ` Dmitry A. Kazakov
2007-01-31 15:16                       ` Markus E Leypold
2007-02-01 14:22                         ` Dmitry A. Kazakov
2007-02-01 15:18                           ` Markus E Leypold
2007-02-01 16:26                           ` Georg Bauhaus
2007-02-01 17:36                             ` Markus E Leypold
2007-02-01 20:53                               ` Georg Bauhaus
2007-02-01 21:57                                 ` Markus E Leypold
2007-02-01 22:03                                 ` Markus E Leypold
2007-02-01 23:40                                 ` Markus E Leypold
2007-02-03 16:54                                   ` Georg Bauhaus
2007-02-03 18:39                                     ` Dmitry A. Kazakov
2007-02-03 20:06                                     ` Markus E Leypold
2007-02-05  0:06                                       ` Markus E Leypold
2007-02-05 13:58                                         ` Georg Bauhaus
2007-02-05 14:23                                           ` Markus E Leypold
2007-02-02  7:17                                 ` Harald Korneliussen
2007-02-05  0:39                               ` Robert A Duff
2007-02-05  1:00                                 ` Markus E Leypold
2007-02-02  9:20                             ` Dmitry A. Kazakov
2007-02-02 12:34                               ` Markus E Leypold
2007-02-03  9:45                                 ` Dmitry A. Kazakov
2007-02-03 14:16                                   ` Markus E Leypold
2007-02-04 19:33                                     ` Dmitry A. Kazakov
2007-02-04 20:44                                       ` Markus E Leypold
2007-02-04 23:00                                         ` Dmitry A. Kazakov
2007-02-04 23:21                                           ` Markus E Leypold
2007-02-02 14:27                               ` Georg Bauhaus
2007-02-02 16:07                                 ` Dmitry A. Kazakov
2007-02-01 19:31                           ` Ray Blaak
2007-02-01 22:54                             ` Randy Brukardt
2007-01-29 16:23                 ` Georg Bauhaus
2007-01-29 16:56                   ` Markus E Leypold
2007-01-29 23:56       ` Randy Brukardt
2007-01-23 10:02 ` Stephen Leake
2007-01-23 16:49   ` adaworks
2007-01-23 17:40     ` Markus E Leypold
2007-01-24 12:51       ` Peter Hermann
2007-01-24 14:42         ` Markus E Leypold
2007-01-23 20:10   ` Jeffrey R. Carter
2007-01-23 22:37     ` Frank J. Lhota
2007-01-24  7:27       ` Jeffrey R. Carter
2007-01-24  9:50         ` Maciej Sobczak
2007-01-24 20:25           ` Jeffrey R. Carter
2007-01-24 21:34             ` Markus E Leypold
2007-01-25  9:23               ` Markus E Leypold
2007-01-26  7:59               ` Maciej Sobczak
2007-01-26 20:05                 ` Jeffrey R. Carter
2007-01-26 22:43                   ` Markus E Leypold
2007-01-23 21:19   ` Björn Persson
2007-01-23 10:38 ` Alex R. Mosteo
2007-01-23 12:58   ` gautier_niouzes
2007-01-23 21:56   ` Dr. Adrian Wrigley
2007-01-24 13:52     ` Alex R. Mosteo
2007-01-24 19:25     ` tmoran
2007-01-24 19:38     ` artifact.one
2007-01-26  2:50     ` Keith Thompson
2007-01-26  5:29     ` Gautier
2007-01-27  5:22     ` Charles D Hixson
2007-01-23 19:16 ` Tero Koskinen
2007-01-23 21:12   ` Ludovic Brenta
2007-01-24  9:59     ` Maciej Sobczak
2007-01-24 18:22       ` Yves Bailly
2007-01-24 19:18       ` Markus E Leypold
2007-01-25  8:37         ` Maciej Sobczak
2007-01-25  9:40           ` Markus E Leypold
2007-01-26  8:52             ` Ludovic Brenta
2007-01-26 11:40               ` Markus E Leypold
2007-01-27 16:56             ` Stephen Leake
2007-01-27 19:58               ` Markus E Leypold
2007-01-28 17:12                 ` Ed Falis
2007-01-28 18:38                   ` Markus E Leypold
2007-01-25 10:13           ` Harald Korneliussen
2007-01-25 12:54             ` Markus E Leypold
2007-01-26  7:03               ` Harald Korneliussen
2007-01-25 13:08             ` Markus E Leypold
2007-01-25 22:36             ` Jeffrey R. Carter
2007-01-25 23:26               ` Markus E Leypold
2007-01-26  4:23                 ` Jeffrey R. Carter
2007-01-26 11:35                   ` Markus E Leypold
2007-01-26 20:22                     ` Jeffrey R. Carter
2007-01-26 23:04                       ` Markus E Leypold
2007-01-27 19:57                         ` Frank J. Lhota
2007-01-28 20:43                         ` adaworks
2007-01-28 22:57                           ` Markus E Leypold
2007-01-29  1:04                           ` Jeffrey R. Carter
2007-01-28 20:32                   ` adaworks
2007-01-28 21:12                     ` Cesar Rabak
2007-01-28 22:43                       ` Markus E Leypold
2007-01-29 22:40                         ` Cesar Rabak
2007-01-30  9:31                           ` Markus E Leypold
2007-01-30 16:19                           ` adaworks
2007-01-30 21:05                             ` Jeffrey Creem
2007-01-28 22:38                     ` Markus E Leypold
2007-01-29 16:16                       ` adaworks
2007-01-29 16:35                         ` Markus E Leypold
2007-01-29  1:02                     ` Jeffrey R. Carter
2007-01-30  0:21                       ` Randy Brukardt
2007-01-26  7:21                 ` Harald Korneliussen
2007-01-26  7:16               ` Harald Korneliussen
2007-01-27  5:30             ` Charles D Hixson
2007-01-24 20:10   ` Cesar Rabak
2007-01-23 20:02 ` Jeffrey R. Carter
2007-01-24  7:18   ` adaworks
2007-01-24 14:19   ` Alex R. Mosteo
2007-01-23 21:36 ` kevin  cline
2007-01-23 22:18   ` Martin Dowie
2007-01-24  4:14     ` Alexander E. Kopilovich
2007-01-24  7:30       ` Jeffrey R. Carter
2007-01-24 20:15         ` Alexander E. Kopilovich
2007-01-25 22:16           ` Jeffrey R. Carter
2007-01-25 23:32             ` Markus E Leypold
2007-01-26  8:56               ` Ludovic Brenta
2007-01-26 11:49                 ` Markus E Leypold
2007-01-26 22:05             ` Alexander E. Kopilovich
2007-01-24  7:31     ` Jeffrey R. Carter
2007-01-24  7:42     ` kevin  cline
2007-01-24  8:07       ` Ludovic Brenta
2007-01-24 12:12         ` Markus E Leypold
2007-01-24 12:48           ` Ludovic Brenta
2007-01-24 14:49             ` Markus E Leypold
2007-01-24 13:40           ` Pascal Obry
2007-01-24 14:50             ` Markus E Leypold
2007-01-24 17:22               ` Pascal Obry
2007-01-24 17:56                 ` Markus E Leypold
2007-01-24 18:09                   ` Pascal Obry
2007-01-24 19:37                     ` Markus E Leypold
2007-01-24 19:52                       ` Pascal Obry
2007-01-24 21:31                         ` Markus E Leypold
2007-03-19  2:09                           ` adaworks
2007-01-25  7:52                     ` Harald Korneliussen
2007-01-24 16:25         ` Adam Beneschan
2007-01-24 17:03           ` Niklas Holsti
2007-01-25 15:37           ` Bob Spooner
2007-02-06  9:54         ` Dave Thompson
2007-02-06 11:01           ` Ludovic Brenta
2007-02-26  5:47             ` Dave Thompson
2007-01-24 16:14       ` adaworks
2007-01-25  0:22         ` kevin  cline
2007-01-25  6:04           ` adaworks
2007-01-25 10:37             ` Maciej Sobczak
2007-01-25 23:36               ` Markus E Leypold
2007-01-25 10:42           ` Dmitry A. Kazakov
2007-01-25  8:27         ` Harald Korneliussen
2007-01-25  4:50       ` Alexander E. Kopilovich
2007-01-27  5:43       ` Charles D Hixson
2007-01-27  8:38         ` Dmitry A. Kazakov
2007-01-28 12:11           ` Michael Bode
2007-01-28 15:20             ` Markus E Leypold
2007-01-29  9:44               ` Martin Krischik
2007-01-27 13:06         ` Gautier
2007-01-27 16:28           ` Ludovic Brenta
2007-01-28  0:55           ` Charles D Hixson
2007-01-28  1:18             ` Ludovic Brenta
2007-01-28 17:06             ` Jeffrey R. Carter
2007-01-28 21:11             ` adaworks
2007-01-24 19:33   ` Arthur Evans Jr
     [not found]     ` <egYth.15026$w91.10597@newsread1.news.pas.earthlink.net>
2007-01-25 22:34       ` Jeffrey R. Carter
2007-01-25 22:55         ` Robert A Duff
2007-01-26 19:59           ` Jeffrey R. Carter
2007-01-27  3:54         ` Randy Brukardt
2007-01-24  0:12 ` JPWoodruff
2007-01-24 10:32   ` gautier_niouzes
2007-01-25  1:01   ` Alexander E. Kopilovich
2007-01-26  5:01     ` JPWoodruff
2007-03-05  2:19 ` Brian May
replies disabled

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