comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: New Ada portable GUI Library?
Date: Sun, 13 Jan 2008 11:06:33 +0100
Date: 2008-01-13T11:06:35+01:00	[thread overview]
Message-ID: <14ilupzt2jywp$.up5hy9th8dnt$.dlg@40tude.net> (raw)
In-Reply-To: 29b4fb7f-afb5-4428-9a73-2bac655b3a27@k39g2000hsf.googlegroups.com

On Sun, 13 Jan 2008 01:11:04 -0800 (PST), Lucretia wrote:

> On Jan 13, 8:13 am, "Dmitry A. Kazakov" <mail...@dmitry-kazakov.de>
> wrote:
>> Gtk and Qt are themselves thick bindings. It makes no sense to use them as
>> a low-level rendering platform. An all-Ada GUI design should IMO look like:
> 
> Yes, actually it does. Look at wxWidgets, they use Gtk as a base for
> Linux apps to provide a native look and feel. Not many people use
> direct X11 libraries for their DE.

Gtk is slow. And after all, there is GtkAda here. If you are prepared to
buy poor performance of Gtk and its alien to Ada design concept, then you
can branch from GtkAda 2.8 which was GMGPL, or maybe 2.4, I don't remember.
(In case you will go this path let me know. I am interested in such efforts
because I maintain the GtkAda contributions project.)

The only goal of a *true* Ada GUI library, IMO, could be a library which
would have a chance to become a part of the Ada Standard Library. So Gtk is
just non-starter here. We cannot depend on third-party libraries.

>> Ada GUI library
>> ----------------------------------------
>> Ada rendering platform abstraction layer
>>            |
>>    Ada   | Ada native bindings, engine-specific
>> -------- | -----------------------------
>>    X11   | Win32 GUI API
>>
>> The major problem is a good abstraction layer with a working concept of
>> inter-tasking signal handler composition. This is a weakness of most known
>> Ada GUI libraries.
> 
> No! At this level you don't need (or want) to implement tasking.
> That's the whole point of using a tiny C veneer as an abstraction for
> the stuff you might not be able to do with Ada easily (I'm talking
> about managing the C preprocessed code here). You implement the
> tasking at the higher Ada layer.

That will be too late to do with signals, and with the opposite direction
too, I mean imperative rendering commands. There is also the issue of
sharing OS rendering resources. All these things don't compose at the
tasking level. Your thin layer should have granularity of pair ms per any
primitive (with cloning non-sharable resources). Otherwise things will
block. Already rendering based on OS libraries does not satisfy this
condition. As for signal handling there is no chance to do it at all. This
implies that tasking must be present already at the bottom level of the
bindings. Otherwise, you will need to move signals to the upper levels, but
that is impossible because signals are already a part of the OS layer like
in X11 and Win32. And what would remain, SetPixel? In short, the OS layer
isn't thin enough.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de



  reply	other threads:[~2008-01-13 10:06 UTC|newest]

Thread overview: 93+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-12 13:37 New Ada portable GUI Library? Tomek Walkuski
2008-01-12 15:19 ` Martin Krischik
2008-01-12 18:12   ` Lucretia
2008-01-12 20:40     ` Tomek Walkuski
2008-01-12 23:01       ` Lucretia
2008-01-13  5:17         ` Vadim Godunko
2008-01-13  9:07           ` Lucretia
2008-01-13 10:49             ` Vadim Godunko
2008-01-16  9:45               ` I. Levashew
2008-01-13  8:13         ` Dmitry A. Kazakov
2008-01-13  9:11           ` Lucretia
2008-01-13 10:06             ` Dmitry A. Kazakov [this message]
2008-01-13 10:25               ` Tomek Walkuski
2008-01-13 12:36                 ` Dmitry A. Kazakov
2008-01-13 19:58                   ` Michael Bode
2008-01-13 21:00                     ` Dmitry A. Kazakov
2008-01-13 21:53                       ` Michael Bode
2008-01-14  9:11                         ` Dmitry A. Kazakov
2008-01-13 23:08                     ` Gary Scott
2008-01-13 23:31                       ` Michael Bode
2008-01-13 23:50                         ` Gary Scott
2008-01-14 19:12                           ` Michael Bode
2008-01-13 11:27               ` Lucretia
2008-01-13 11:29               ` Lucretia
2008-01-15  7:34               ` Martin Krischik
2008-01-15  8:38                 ` Ludovic Brenta
2008-01-15  8:54                   ` Martin Krischik
2008-02-11 22:10               ` Martin
2008-02-12 18:35                 ` Martin Krischik
2008-02-12 21:43                   ` Tomek Walkuski
2008-01-13 11:14           ` Martin Krischik
2008-01-13 11:31             ` Lucretia
2008-01-14 17:58             ` Ben
2008-01-14 18:21               ` Dmitry A. Kazakov
2008-01-14 20:47                 ` Gautier
2008-01-14 21:32                   ` Dmitry A. Kazakov
2008-01-13 13:28         ` Stephen Leake
2008-01-13 14:14           ` Pascal Obry
2008-01-13 14:22             ` Pascal Obry
2008-01-15  7:54               ` Martin Krischik
2008-01-16  7:54                 ` Brian May
2008-01-16  8:47                   ` Dmitry A. Kazakov
2008-01-16  8:52                   ` Martin Krischik
2008-01-16 18:26                     ` tmoran
2008-01-13 22:22           ` Lucretia
2008-01-14 10:07             ` Stephen Leake
2008-01-12 18:36 ` (slightly OT) Open Source licences? (was: Re: New Ada portable GUI Library?) framefritti
2008-01-12 18:57   ` Maciej Sobczak
2008-01-12 19:27   ` Tomek Walkuski
2008-01-12 19:39   ` (slightly OT) Open Source licences? Gautier
2008-01-12 20:26   ` Dmitry A. Kazakov
2008-01-12 21:58   ` Robert A Duff
2008-01-13  0:04   ` (slightly OT) Open Source licences? (was: Re: New Ada portable GUI Library?) Georg Bauhaus
2008-01-12 22:37 ` Georg Bauhaus
2008-01-13 11:04 ` New Ada portable GUI Library? Gautier
2008-01-15  7:56   ` Martin Krischik
2008-01-15 17:41     ` Gautier
2008-01-16  8:16     ` tmoran
2008-01-16  8:56       ` Martin Krischik
2008-01-16 19:34       ` Gautier
2008-01-16 22:51         ` Randy Brukardt
2008-01-17 20:32           ` Gautier
2008-01-18  1:41             ` Robert A Duff
2008-01-18 17:53               ` tmoran
2008-01-18 18:59                 ` Robert A Duff
2008-01-18 19:28                   ` Pascal Obry
2008-01-20 22:38                     ` Robert A Duff
2008-01-20  1:38                 ` Jerrid Kimball
2008-01-20 12:30                   ` Ludovic Brenta
2008-01-20 13:40                   ` Stephen Leake
2008-01-20 14:36                     ` Dmitry A. Kazakov
2008-01-15  8:17 ` Martin Krischik
2008-01-15  9:14   ` Ludovic Brenta
2008-01-15 10:39     ` Martin Krischik
2008-01-15 14:01       ` Ludovic Brenta
2008-01-15 16:05         ` Martin Krischik
2008-01-15 17:31           ` Ludovic Brenta
2008-01-16  8:28             ` Martin Krischik
2008-01-17  2:21   ` I. Levashew
2008-01-17  7:34     ` OpenStep/GNUStep/Cocoa (Was: New Ada portable GUI Library?) Martin Krischik
2008-01-17  9:06       ` Ivan Levashew
2008-01-17 10:25         ` Martin Krischik
2008-01-18  3:28           ` Ivan Levashew
2008-01-18  7:24             ` Martin Krischik
2008-01-15 21:51 ` New Ada portable GUI Library? Phaedrus
2008-01-16  0:04   ` Jeffrey R. Carter
2008-01-16  0:20     ` Phaedrus
2008-01-16  1:09       ` Randy Brukardt
2008-01-16  1:47         ` Phaedrus
2008-01-20 14:07 ` Andre
2008-01-21 23:14 ` Frederik Sausmikat
2008-01-27 11:26   ` Lucretia
2008-01-27 16:47     ` Gary Scott
replies disabled

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