comp.lang.ada
 help / color / mirror / Atom feed
From: Kevin Chadwick <kc-usenet@chadwicks.me.uk>
Subject: Re: Best use cases for OOP (resent quoted sorry)
Date: Thu, 28 Aug 2025 14:45:09 -0000 (UTC)	[thread overview]
Message-ID: <108pq1l$1dp6u$1@dont-email.me> (raw)
In-Reply-To: <108pppp$1dmp6$1@dont-email.me>

On 28/08/2025 15:40, Kevin Chadwick wrote:
>On 28/08/2025 10:02, Dmitry A. Kazakov wrote:
>
>On 2025-08-28 10:50, Kevin Chadwick wrote:
>
>I can explain how it works. When a DLL is loaded its library level
>
>gets elaborated. So if you have:
>
>package P is
>
>   type T is tagged ...
>
>end P;
>
>in the main program or DLL and
>
>with P;
>
>package Q is
>
>   type S is new T with ...
>
>   function F return T'Class;
>
>end Q;
>
>in the DLL being loaded, then in the process of elaboration S will be
>
>created which in particular means extending of the dispatching table.
>
>You can return a class-wide object from there and dispatch on the
>
>newly created type's operation.
>
>Clear?
>
>Interesting, better than the shape examples but I guess you have to get
>
>that in the first instance.
>
>Dynamic polymorphism is an extremely powerful mechanism, but it kind of
>
>bends out of traditional typing.
>
>It is like the relativity theory. Everything is relative, position,
>
>velocity, but up to the point. Acceleration is not anymore. Same is with
>
>typing: value->type, so far so good, but one more step up:
>
>value->type->class and something happens. Primitive operations become
>
>reachable even if you do not see them, you cannot hide them. Multiple
>
>inheritance, OK, but what about conflicts, is it additive or idempotent?
>
>Multiple dispatch is a total dark hole.
>
>

I have struggled to find compelling reasons to use tagged types considering
they affect the size of records and potentially elaboration issues that
cannot exist without tagged types.

I know some use tagged types just for dot notation but that doesn't really
move the needle in my mind. I would certainly appreciate it if people could
share their favourite use cases for tagged types though. Things that are
perhaps a pain without them or were with Ada 83.


-- 
Regards, Kc

  reply	other threads:[~2025-08-28 14:45 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-28 14:40 Best use cases for OOP Kevin Chadwick
2025-08-28 14:45 ` Kevin Chadwick [this message]
2025-08-28 15:12   ` Best use cases for OOP (resent quoted sorry) Dmitry A. Kazakov
2025-08-28 18:28   ` Niklas Holsti
2025-08-28 20:23   ` Alex // nytpu
2025-08-29  8:28     ` Dmitry A. Kazakov
2025-08-29  9:14       ` Kevin Chadwick
2025-08-29 10:37         ` 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