comp.lang.ada
 help / color / mirror / Atom feed
From: Jere <jhb.chat@gmail.com>
Subject: Re: Type naming conventions: Any_Foo
Date: Sat, 7 Dec 2019 15:24:21 -0800 (PST)
Date: 2019-12-07T15:24:21-08:00	[thread overview]
Message-ID: <ba5905ae-babe-4c83-923e-049f5927af35@googlegroups.com> (raw)
In-Reply-To: <qsfu02$j84$1@dont-email.me>

On Saturday, December 7, 2019 at 5:13:24 AM UTC-5, Jeffrey R. Carter wrote:
> On 12/6/19 9:35 PM, Dmitry A. Kazakov wrote:
> 
> > I am required to. There must be always be two types in a GUI, one referential 
> > type and one implementation type. 
> 
> As I have presented here in the past a proof of concept of a GUI library that 
> uses no access types, this is demonstrably false.
> 

You are correct that you can write a high level abstraction wrapper
around a GUI without exposing access types, but to Dmitry's point, the
actual code that creates the GUI components has to use access types
or some sort of referential data type.  Your example GUI illustrates even
this.  When you look at ada_gui.adb, you will see multiple uses of 
access types:  accesses to procedure callbacks, accesses to GUI components,
uses of 'Access, etc. 

So if you are simply writing a wrapper around a GUI library, sure, but if
you are writing an actual GUI library, I'm not sure it can be done without
them.  I would definitely like to see your code if you can write an
actual GUI library without them at all.  The one you have posted on github
still has access types used in it.  You are correct that you can hide 
them at the high level though.


  parent reply	other threads:[~2019-12-07 23:24 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-04 13:56 Type naming conventions: Any_Foo Alejandro R. Mosteo
2019-12-04 14:52 ` Lucretia
2019-12-04 16:42   ` Alejandro R. Mosteo
2019-12-05 10:51     ` AdaMagica
2019-12-05 17:27       ` Jeffrey R. Carter
2019-12-05 17:45         ` Dmitry A. Kazakov
2019-12-05 20:03           ` Jeffrey R. Carter
2019-12-05 21:51             ` Dmitry A. Kazakov
2019-12-05 23:12               ` Randy Brukardt
2019-12-06 20:20                 ` Jeffrey R. Carter
2019-12-07  1:19                   ` Randy Brukardt
2019-12-06 20:18               ` Jeffrey R. Carter
2019-12-06 20:35                 ` Dmitry A. Kazakov
2019-12-07  0:57                   ` Randy Brukardt
2019-12-07 10:28                     ` Jeffrey R. Carter
2019-12-07 12:36                       ` Niklas Holsti
2019-12-08 12:04                         ` Jeffrey R. Carter
2019-12-07 10:13                   ` Jeffrey R. Carter
2019-12-07 11:21                     ` Dmitry A. Kazakov
2019-12-08 11:55                       ` Jeffrey R. Carter
2019-12-08 12:38                         ` Dmitry A. Kazakov
2019-12-08 14:31                         ` Shark8
2019-12-08 21:58                           ` Jeffrey R. Carter
2019-12-09 22:47                             ` Shark8
2019-12-07 23:24                     ` Jere [this message]
2019-12-08 12:14                       ` Jeffrey R. Carter
2019-12-09 22:07                         ` Randy Brukardt
2019-12-05 19:49         ` Niklas Holsti
2019-12-05 20:47           ` Jeffrey R. Carter
2019-12-05 21:33             ` Niklas Holsti
2019-12-06 11:44               ` Lucretia
2019-12-06 20:23                 ` Jeffrey R. Carter
2019-12-06 20:11               ` Jeffrey R. Carter
2019-12-06 20:46                 ` Dmitry A. Kazakov
2019-12-06 21:55                 ` Niklas Holsti
2019-12-07 10:19                   ` Jeffrey R. Carter
2019-12-07 12:05                     ` Niklas Holsti
2019-12-08 11:59                       ` Jeffrey R. Carter
2019-12-06  8:57       ` AdaMagica
2019-12-06  9:55         ` J-P. Rosen
2019-12-06 15:30       ` Optikos
2019-12-07  3:34 ` Shark8
replies disabled

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