From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.9 required=5.0 tests=BAYES_00,FORGED_GMAIL_RCVD, FREEMAIL_FROM autolearn=no autolearn_force=no version=3.4.4 X-Received: by 2002:ac8:7557:: with SMTP id b23mr16934779qtr.38.1575761061582; Sat, 07 Dec 2019 15:24:21 -0800 (PST) X-Received: by 2002:a9d:58c9:: with SMTP id s9mr16150878oth.182.1575761061369; Sat, 07 Dec 2019 15:24:21 -0800 (PST) Path: eternal-september.org!reader01.eternal-september.org!feeder.eternal-september.org!news.gegeweb.eu!gegeweb.org!usenet-fr.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!g89no4429405qtd.0!news-out.google.com!o19ni177qtr.1!nntp.google.com!g89no4429395qtd.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Sat, 7 Dec 2019 15:24:21 -0800 (PST) In-Reply-To: Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=70.109.61.2; posting-account=QF6XPQoAAABce2NyPxxDAaKdAkN6RgAf NNTP-Posting-Host: 70.109.61.2 References: User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: Subject: Re: Type naming conventions: Any_Foo From: Jere Injection-Date: Sat, 07 Dec 2019 23:24:21 +0000 Content-Type: text/plain; charset="UTF-8" Xref: reader01.eternal-september.org comp.lang.ada:57689 Date: 2019-12-07T15:24:21-08:00 List-Id: 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.