From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Ada design bug or GNAT bug?
Date: Sat, 4 Jul 2015 19:48:35 -0500
Date: 2015-07-04T19:48:35-05:00 [thread overview]
Message-ID: <mn9ut3$v54$1@loke.gir.dk> (raw)
In-Reply-To: mn8hok$fdf$1@dont-email.me
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1436 bytes --]
"Björn Lundin" <b.f.lundin@gmail.com> wrote in message
news:mn8hok$fdf$1@dont-email.me...
> On 2015-07-04 09:46, Simon Wright wrote:
>> Shark8 <onewingedshark@gmail.com> writes:
>>
>>> Also, I seem to recall your dislike of INTERFACEs -- in hindsight,
>>> what would you have done differently if you needed the mechanism of
>>> "Type T has functions X, Y, and X" applied to a group of types?
>>> Generics, or some variations thereof?
>>
>> Generic signature packages?
>>
>
> I had this problem when implementing another companies proprietary
> communications protocol, that we needed to communicate with.
> The physical devices were picking-robots.
> All messages had a common headers and then message specific fields.
> And they had to have certain functions. To_String, Save_to_Database,
> Send, etc.
>
> Since I had complete control over the implementation, I
> ended up using inheritance from an abstract type.
>
> Some functions of the abstract type were implemented,
> and others - to specialized for the inherited type -
> was declared abstract.
Right, with single inheritance. Good enough for 98% of problems, IMHO. I've
used abstract types this way (in Claw and in Claw tools), but I found that
the main gain was the shared implementations that could be provided by the
abstract type. Interfaces don't allow them, so they provide cool-looking,
but mainly useless capabilities.
Randy.
next prev parent reply other threads:[~2015-07-05 0:48 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
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 [this message]
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