comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: What would you like in Ada202X?
Date: Fri, 27 Apr 2012 17:42:24 -0500
Date: 2012-04-27T17:42:24-05:00	[thread overview]
Message-ID: <jnf7ck$d80$1@munin.nbi.dk> (raw)
In-Reply-To: 11hojzrgyl24o$.1rbxahkuoy4ab$.dlg@40tude.net

"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message 
news:11hojzrgyl24o$.1rbxahkuoy4ab$.dlg@40tude.net...
> On Thu, 26 Apr 2012 18:58:06 -0500, Randy Brukardt wrote:
...
>> I've concluded that I'm pretty much against all forms of MI.
>
> Do not both Integer and Float implement "is private", T'Image, X'Size? MI
> is all around you without any tagged types, you cannot get rid of it. You
> sweep it under the carpet and pretend it does not exist.

These examples might be "M" (multiple), but they don't represent "I" 
(inheritance) -- you can't (and shouldn't) inherit these things other than 
linearly.

Note that the things that you mentioned are called "categories", 
"characteristics", and "aspects", respectively, in Ada. You could put them 
all under the unbrella of "properties", but what's important here is that 
the rules are necessarily different for each grouping. For instance, 
"categories" are not necessarily inherited, and can be view-specific (like 
"is private"). There is no way to unify these rules (we tried for Ada 2005 
when we discovered they were poorly defined), because the needs are 
different.

I could imagine extending the "aspect/attribute" feature to user-defined 
aspect/attribute pairs; that would properly mimic the idea of specific 
properties applying to particular types. That's all interfaces really gives 
you anyway, in a much more complicated way.

>> Which I realize
>> is probably too strong, but surely Interfaces isn't it. I'm definitely
>> against any mechanism that you can only use once, which is the way a
>> particular interface works. That leads to silliness like the "no hidden
>> interfaces" rule (because otherwise you could destroy privacy by adding 
>> the
>> "right" interface; alternatively, you could destroy everyone's sanity by
>> determining what routine to dispatch to by what visibility you have).
>
> That is because the broken Java model was deployed. Look you cannot make a
> type non-limited by adding "private" (=copyiable) interfaces. There is no
> problem, except for fighting shadows.

There are of course problems with any model, and they're a lot more than 
shadows. If you have a copyable interface, you of course might copy it -- so 
what happens if the actual object is a limited type? Runtime failures are 
ugly at best, and go completely against the grain of Ada's philosophy of 
preventing errors at compile-time.

If you're willing to abandon all compile-time checking, then of course there 
are no problems (and probably no programs that work, either). That's not 
Ada.

In any case, interfaces is barely compatible with Ada, and a more general 
scheme is impossible -- it would be completely unimplementable. You'd need 
to start over with a new language and new, from scratch implementations 
(which are not happening for Ada).

                                    Randy.





  reply	other threads:[~2012-04-27 22:42 UTC|newest]

Thread overview: 312+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-25  7:47 What would you like in Ada202X? Martin
2012-04-25  8:01 ` Yannick Duchêne (Hibou57)
2012-04-25  8:30   ` stefan-lucks
2012-04-25 19:21   ` Adam Beneschan
2012-04-28 11:50   ` Yannick Duchêne (Hibou57)
2012-04-28 13:21   ` Yannick Duchêne (Hibou57)
2012-04-29  1:03     ` BrianG
2012-04-25  8:36 ` Jacob Sparre Andersen
2012-04-25  8:46   ` Yannick Duchêne (Hibou57)
2012-04-25  9:04     ` leonid
2012-04-25 11:30     ` Jacob Sparre Andersen
2012-04-26  2:00       ` Randy Brukardt
2012-04-26 13:10         ` AdaMagica
2012-04-26 15:49       ` anon
2012-04-27  0:26         ` Randy Brukardt
2012-04-25  9:10   ` Martin
2012-04-25  8:36 ` Dmitry A. Kazakov
2012-04-25  8:59   ` Yannick Duchêne (Hibou57)
2012-04-25  9:24     ` Dmitry A. Kazakov
2012-04-25 10:05       ` Yannick Duchêne (Hibou57)
2012-04-26  2:08       ` Randy Brukardt
2012-04-26  8:50         ` Dmitry A. Kazakov
2012-04-26 23:50           ` Randy Brukardt
2012-04-27  5:03             ` Yannick Duchêne (Hibou57)
2012-04-27 13:50               ` Robert A Duff
2012-04-27 23:25               ` Randy Brukardt
2012-04-28  6:32                 ` Yannick Duchêne (Hibou57)
2012-04-27  7:56             ` Dmitry A. Kazakov
2012-04-27 13:56               ` Robert A Duff
2012-04-28  8:32                 ` Dmitry A. Kazakov
2012-04-28 11:44                   ` Yannick Duchêne (Hibou57)
2012-04-29 13:35                   ` Robert A Duff
2012-04-29 15:59                     ` Dmitry A. Kazakov
2012-04-29 19:27                       ` Robert A Duff
2012-04-29 20:09                         ` Dmitry A. Kazakov
2012-05-01  2:17                     ` Randy Brukardt
2012-04-25  9:31   ` Dmitry A. Kazakov
2012-04-26  2:10     ` Randy Brukardt
2012-05-10  7:29   ` Gustaf Thorslund
2012-05-14  9:25     ` stefan-lucks
2012-05-14 12:19       ` Dmitry A. Kazakov
2012-05-14 13:09         ` Georg Bauhaus
2012-05-14 13:40           ` Dmitry A. Kazakov
2012-05-14 15:50             ` Georg Bauhaus
2012-05-14 20:24               ` Gustaf Thorslund
2012-05-14 22:49                 ` tmoran
2012-05-15  6:15                   ` Gustaf Thorslund
2012-04-25  9:09 ` Georg Bauhaus
2012-04-25  9:14   ` Yannick Duchêne (Hibou57)
2012-04-25  9:30   ` Dmitry A. Kazakov
2012-04-25 13:11   ` Marc C
2012-04-25 13:35     ` Georg Bauhaus
2012-04-25 13:36     ` Pascal Obry
2012-04-25 14:18     ` Yannick Duchêne (Hibou57)
2012-04-25 16:12     ` björn lundin
2012-04-25 17:36       ` Lucretia
2012-04-25 20:26         ` Yannick Duchêne (Hibou57)
2012-04-26 15:20       ` Simon Wright
2012-04-28 10:58         ` björn lundin
2012-04-26 12:37     ` Marc C
2012-04-25 18:14   ` Jeffrey Carter
2012-04-25 18:51     ` Dmitry A. Kazakov
2012-04-25 20:53     ` Yannick Duchêne (Hibou57)
2012-04-25 21:14       ` Jeffrey Carter
2012-04-25 21:27         ` Yannick Duchêne (Hibou57)
2012-04-25 21:30         ` Yannick Duchêne (Hibou57)
2012-04-25 22:33           ` Jeffrey Carter
2012-04-26  0:50             ` Yannick Duchêne (Hibou57)
2012-04-26  1:06               ` Jeffrey Carter
2012-04-28 11:02               ` okellogg
2012-04-28 11:48                 ` Yannick Duchêne (Hibou57)
2012-04-29 13:43                 ` Robert A Duff
2012-04-29 16:59                   ` okellogg
2012-04-29 19:04                     ` Robert A Duff
2012-04-29 19:32                       ` Yannick Duchêne (Hibou57)
2012-04-29 19:37                       ` Yannick Duchêne (Hibou57)
2012-04-29 19:55                         ` Robert A Duff
2012-04-29 21:37                       ` okellogg
2012-04-29 22:51                         ` Robert A Duff
2012-04-26  2:23   ` Randy Brukardt
2012-04-26  8:25     ` Dmitry A. Kazakov
2012-04-26 23:58       ` Randy Brukardt
2012-04-27  7:23         ` Dmitry A. Kazakov
2012-04-27 22:42           ` Randy Brukardt [this message]
2012-04-28  7:53             ` Dmitry A. Kazakov
2012-04-28 11:40               ` Yannick Duchêne (Hibou57)
2012-04-28 11:51                 ` Dmitry A. Kazakov
2012-05-01  2:32               ` Randy Brukardt
2012-04-27  7:41   ` Jacob Sparre Andersen
2012-04-27 15:33     ` Adam Beneschan
2012-04-29  7:57     ` J-P. Rosen
2012-04-29 17:32       ` Robert Love
2012-04-29 23:33       ` Shark8
2012-05-10  7:18   ` ytomino
2012-05-10 15:25     ` Adam Beneschan
2012-05-10 15:51       ` ytomino
2012-05-10 17:09         ` Adam Beneschan
2012-05-10 18:25           ` ytomino
2012-04-25 12:13 ` Georg Bauhaus
2012-04-25 16:41   ` tmoran
2012-04-25 13:10 ` Nicholas Paul Collin Gloucester
2012-04-25 18:10   ` Zhu Qun-Ying
2012-04-25 18:07 ` okellogg
2012-04-25 19:15   ` Adam Beneschan
2012-04-25 20:12     ` okellogg
2012-04-25 20:26       ` Jeffrey Carter
2012-04-25 21:09         ` Yannick Duchêne (Hibou57)
2012-04-25 21:11         ` Martin Dowie
2012-04-25 22:18           ` Georg Bauhaus
2012-04-26  2:36             ` Randy Brukardt
2012-04-25 20:40       ` Adam Beneschan
2012-04-25 22:05         ` okellogg
2012-04-25 23:13           ` Adam Beneschan
2012-04-26  1:46             ` Brad Moore
2012-04-26  2:41             ` Randy Brukardt
2012-04-26  7:43         ` Mart van de Wege
2012-04-26  8:46           ` Georg Bauhaus
2012-04-26 14:57             ` Mart van de Wege
2012-04-26 15:28           ` Adam Beneschan
2012-04-26 18:16           ` Jeffrey Carter
2012-04-26 21:41             ` Mart van de Wege
2012-04-26 22:01               ` Jeffrey Carter
2012-04-25 20:19     ` Jeffrey Carter
2012-04-25 21:05   ` Yannick Duchêne (Hibou57)
2012-04-26  2:33   ` Randy Brukardt
2012-04-25 18:24 ` Jeffrey Carter
2012-04-25 19:02   ` Dmitry A. Kazakov
2012-04-25 19:02 ` Oliver Kleinke
2012-04-25 19:27   ` Dmitry A. Kazakov
2012-04-25 20:50   ` Georg Bauhaus
2012-04-26  8:15     ` Oliver Kleinke
2012-04-26  9:16       ` Jacob Sparre Andersen
2012-04-26  9:16       ` Georg Bauhaus
2012-04-25 21:17   ` Yannick Duchêne (Hibou57)
2012-04-26  8:18     ` Oliver Kleinke
2012-04-25 22:14 ` ytomino
2012-04-26  0:37   ` Yannick Duchêne (Hibou57)
2012-04-26  2:52     ` Randy Brukardt
2012-04-26 15:19       ` Adam Beneschan
2012-04-26 15:55         ` Dmitry A. Kazakov
2012-04-27  2:38         ` ytomino
2012-04-27  8:09           ` Georg Bauhaus
2012-04-27  8:19             ` Dmitry A. Kazakov
2012-04-27  9:46               ` Georg Bauhaus
2012-04-27 10:05                 ` Dmitry A. Kazakov
2012-04-27 11:04                   ` Georg Bauhaus
2012-04-27 12:10                     ` Dmitry A. Kazakov
2012-04-26  4:12     ` ytomino
2012-04-26  8:44     ` Dmitry A. Kazakov
2012-04-26 11:22       ` Yannick Duchêne (Hibou57)
2012-04-26 13:17         ` Dmitry A. Kazakov
2012-04-27  0:09       ` Randy Brukardt
2012-04-27  5:23         ` Yannick Duchêne (Hibou57)
2012-04-27 22:49           ` Randy Brukardt
2012-04-27  7:31         ` Dmitry A. Kazakov
2012-04-27 22:46           ` Randy Brukardt
2012-04-28  8:41             ` Dmitry A. Kazakov
2012-04-25 22:30 ` Shark8
2012-04-26  0:42   ` Yannick Duchêne (Hibou57)
2012-04-26  9:29 ` gautier_niouzes
2012-04-26 11:27   ` Yannick Duchêne (Hibou57)
2012-04-26 13:19     ` Dmitry A. Kazakov
2012-04-30 22:38     ` gautier_niouzes
2012-04-27  0:18 ` sbelmont700
2012-04-27 16:04   ` Shark8
2012-04-27 21:11     ` sbelmont700
2012-04-27 23:18       ` Randy Brukardt
2012-04-27 23:40         ` sbelmont700
2012-04-28  2:17           ` Adam Beneschan
2012-04-28  8:03           ` Dmitry A. Kazakov
2012-04-29  3:20       ` Shark8
2012-04-29 15:42         ` sbelmont700
2012-04-29 23:29           ` Shark8
2012-04-30  2:00             ` sbelmont700
2012-04-27 23:03   ` Randy Brukardt
2012-04-27  5:10 ` Nasser M. Abbasi
2012-04-27  5:36   ` Yannick Duchêne (Hibou57)
2012-04-27 10:59 ` Martin
2012-04-27 17:05   ` Simon Wright
2012-04-30  7:28     ` Martin
2012-05-01  2:45       ` Randy Brukardt
2012-05-01  7:28         ` Martin
2012-05-01 17:15           ` Shark8
2012-05-01 18:13             ` Jeffrey Carter
2012-05-01 19:30             ` Dmitry A. Kazakov
2012-05-01 20:23             ` Robert A Duff
2012-05-01 21:53               ` tmoran
2012-05-01 22:05                 ` Adam Beneschan
     [not found]                   ` <JYOdnei1xPFt8D3SnZ2dnUVZ_qudnZ2d@earthlink.com>
2012-05-02  4:28                     ` Shark8
2012-05-02  8:18             ` Martin
2012-05-02 12:57               ` Shark8
2012-05-08 17:45             ` Martin Dowie
2012-05-03 15:30           ` gautier_niouzes
2012-05-03 15:58             ` Yannick Duchêne (Hibou57)
2012-05-04  7:25               ` Martin
2012-05-01 16:23         ` Simon Wright
2012-04-29  3:52   ` Shark8
2012-04-29  7:13     ` Dmitry A. Kazakov
2012-04-29  9:17       ` gautier_niouzes
2012-04-27 15:33 ` mjsilva
2012-04-28  1:38   ` BrianG
2012-05-01 15:04     ` mjsilva
2012-04-30  6:28 ` Michael Rohan
2012-04-30  6:40 ` Michael Rohan
2012-04-30  8:27   ` Yannick Duchêne (Hibou57)
2012-05-06 18:48 ` Niklas Holsti
2012-05-06 19:27   ` Simon Wright
2012-05-06 20:47     ` Niklas Holsti
2012-05-06 19:28   ` Dmitry A. Kazakov
2012-05-06 20:06     ` Yannick Duchêne (Hibou57)
2012-05-06 21:26     ` Niklas Holsti
2012-05-07  7:49       ` Dmitry A. Kazakov
2012-05-07 23:18         ` Niklas Holsti
2012-05-08  9:03           ` Dmitry A. Kazakov
2012-05-08 19:20             ` Niklas Holsti
2012-05-08 19:44               ` Niklas Holsti
2012-05-09  8:02               ` Dmitry A. Kazakov
2012-05-10  0:47                 ` Randy Brukardt
2012-05-13 19:53                   ` Niklas Holsti
2012-05-15  6:30                     ` Randy Brukardt
2012-05-15  7:58                       ` Dmitry A. Kazakov
2012-05-16  0:05                         ` Randy Brukardt
2012-05-17 19:48                       ` Niklas Holsti
2012-05-18  4:28                         ` Randy Brukardt
2012-05-17 14:40                 ` Niklas Holsti
2012-05-17 17:12                   ` Dmitry A. Kazakov
2012-05-07  6:33   ` ytomino
2012-05-07 22:34     ` Niklas Holsti
2012-05-08  0:48       ` Randy Brukardt
2012-05-08  6:30         ` Niklas Holsti
2012-05-08 22:11           ` Randy Brukardt
2012-05-08 22:22           ` Randy Brukardt
2012-05-09  7:18             ` Dmitry A. Kazakov
2012-05-10  0:30               ` Randy Brukardt
2012-05-10  7:44                 ` Dmitry A. Kazakov
2012-05-10 21:22             ` Niklas Holsti
2012-05-11  7:39               ` Dmitry A. Kazakov
2012-05-12  0:11               ` Randy Brukardt
2012-05-15 21:35                 ` Niklas Holsti
2012-05-16  0:19                   ` Randy Brukardt
2012-05-17 22:01                     ` Niklas Holsti
2012-05-18  4:35                       ` Randy Brukardt
2012-05-16  7:39                   ` Dmitry A. Kazakov
2012-05-10  6:45       ` ytomino
2012-05-15 21:52         ` Niklas Holsti
2012-07-03 15:41   ` Pascal Obry
2012-07-03 15:50     ` Pascal Obry
2012-07-04 11:41       ` Ada novice
2012-07-04 12:30         ` Nasser M. Abbasi
2012-07-04 17:05           ` shai.lesh
2012-07-04 17:55           ` Simon Wright
2012-07-04 18:35             ` Nasser M. Abbasi
     [not found]             ` <0o59v7djiffnl7sqdpp2uiso78oa9hb8sb@invalid.netcom.com>
2012-07-04 20:34               ` shai.lesh
2012-07-04 22:26                 ` Simon Wright
     [not found]                   ` <j5p9v7l646mlk9m073u4m69dg3gjfjblfm@invalid.netcom.com>
2012-07-05  7:53                     ` shai.lesh
2012-07-05  8:18                       ` Simon Wright
2012-07-06  0:48                         ` John B. Matthews
2012-07-05  8:30                       ` georg bauhaus
2012-07-05 11:57                         ` shai.lesh
2012-07-05 12:11                           ` Nasser M. Abbasi
2012-07-05 12:21                             ` Nasser M. Abbasi
2012-07-05 13:07                               ` shai.lesh
2012-07-05 14:08                                 ` Nasser M. Abbasi
2012-07-05 15:51                                   ` Ada novice
2012-07-05 15:55                   ` johnscpg
2012-07-05 16:57                     ` Simon Wright
2012-07-05 17:36                       ` shai.lesh
2012-07-06 12:07                       ` Ada novice
2012-07-06 15:29                         ` Simon Wright
2012-07-12  6:02                           ` Egil Høvik
2012-07-12  8:29                             ` Simon Wright
2012-07-12  9:00                               ` Egil Høvik
2012-07-12 12:44                                 ` Georg Bauhaus
2012-07-12 13:20                                   ` Egil Høvik
2012-07-12 15:53                                   ` Adam Beneschan
2012-07-12 16:34                                     ` Dmitry A. Kazakov
2012-07-12 17:35                                     ` Georg Bauhaus
2012-07-19  6:44                                     ` David Thompson
2012-07-19 18:22                                       ` Simon Wright
2012-07-20  6:20                                         ` Georg Bauhaus
2012-07-27 19:49                                           ` Ada novice
2012-07-12  9:47                               ` Nasser M. Abbasi
2012-05-10 13:13 ` Martin
2012-05-18  9:56 ` Marius Amado-Alves
2012-06-04  8:10 ` Yannick Duchêne (Hibou57)
2012-06-11 21:54 ` Yannick Duchêne (Hibou57)
2012-06-29 11:29 ` joachim.schroeer
2012-06-29 11:54   ` AdaMagica
2012-06-29 12:42     ` stefan-lucks
2012-06-29 15:12     ` Adam Beneschan
2012-07-03  0:47     ` Randy Brukardt
2012-06-29 12:13   ` Dmitry A. Kazakov
2012-06-29 22:37     ` Robert A Duff
2012-06-30 12:00 ` Brian Drummond
2012-06-30 12:34   ` Dmitry A. Kazakov
2012-06-30 17:00     ` Brian Drummond
2012-06-30 18:43       ` Dmitry A. Kazakov
2012-06-30 21:06         ` Brian Drummond
2012-07-01  8:17           ` Oliver Kellogg
2012-07-01  8:28             ` Pascal Obry
2012-07-01  8:25           ` Dmitry A. Kazakov
2012-07-01 10:57             ` Brian Drummond
2012-07-01 12:46               ` Dmitry A. Kazakov
2012-07-03  0:53               ` Randy Brukardt
2012-06-30 15:51   ` Robert A Duff
2012-06-30 17:37     ` Brian Drummond
2012-06-30 18:09       ` Robert A Duff
2012-06-30 18:26       ` Niklas Holsti
2012-07-01 10:47         ` Brian Drummond
2012-07-13  8:07 ` Martin
2012-07-13 11:04   ` Pascal Obry
2012-07-13 11:13     ` Martin
replies disabled

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