comp.lang.ada
 help / color / mirror / Atom feed
From: Martin Krischik <krischik@users.sourceforge.net>
Subject: Re: New Ada portable GUI Library?
Date: Wed, 16 Jan 2008 09:28:29 +0100
Date: 2008-01-16T09:28:29+01:00	[thread overview]
Message-ID: <478dc02d$1@news.post.ch> (raw)
In-Reply-To: <b501522c-16ae-4448-8df5-4b79a40e8a5f@i7g2000prf.googlegroups.com>

Ludovic Brenta schrieb:
> Martin Krischik wrote:
>> Ludovic Brenta schrieb:
>>
>>> Martin Krischik wrote:
>>>> Ludovic Brenta schrieb:
>>>>
>>>>> Martin Krischik wrote:
>>>>>> I have another suggestion: A GUI Library based on OpenStep [1].
>>>>> [...]
>>>>>> [1] http://en.wikipedia.org/wiki/OpenStep
>>>>> Do you mean a reimplementation of the OpenStep specification in Ada,
>>>>> or an Ada binding to GNUstep (http://www.gnustep.org) ?
>>>> The later. AFAIK GNUStep uses only a small message based dynamically
>>>> typed API with a plain C specification. Qt and Gtk+ use huge OO API's in
>>>> C++ or some kind of strange OO-C.

> I agree that a static mapping doesn't make sense; that's why I was
> thinking about a binding generator. A preprocessor that takes Ada
> sources with directives and produces Ada sources wouldn't cut it
> because one would have to write the input files manually. The only
> sensible input is the Objective-C specification files.

I see what you mean - and probably we would need both. I might aim high
but I believe full integration should be the aim. And that means that
class B written in Objective-Ada inherits from Class A written in
Objective-C and Class C written in Objective-C++ inherits from Class B.

Now I believe neither GtkAda nor QtAda currently offer that kind of support.

>>> The stumbling blocks would be to implement Objective-C's reflection,
>>> dynamic typing and garbage collection in Ada. In particular,
>>> reflection and dynamic typing are alien to Ada's philosophy.

>> You don't - you use the objc runtime which should provide all those via
>>  plain C functions.

> No, because you must export callbacks from Ada so the Objective-C
> libraries can call them using dynamic typing and reflection. But Ada
> does not have dynamic typing or reflection. That's the problem.

Neither had C or C++ - that is all done by the (now build in) preprocessor.

>> But it will solve the biggest problem: the endless amount of methods. A
>> GUI lib easily got 100 classes. Defining 100 classes is doable - but
>> each class will have what about 20 methods. Yes 20 is realistic for GUI
>> lib. That would be 2000 pragma imports - endless work.
> 
> That's the job of the generator.

Yes - which might use reflection to get the data needed.

>>>>> would require both the Ada and Objective-C runtime libraries...
>>>> Indeed - but that is not different from Gtk+ and Qt approach. And bare
>>>> metal is only feasible for Windows but not for X11.
>>> OK, Qt requires a C++ runtime like GNUstep requires an Objective-C
>>> runtime. However, GTK+ only requires the C runtime
>> That might have been the original idea, but soon they needed Glib2 - to
>> make things easier. And then a few more: ATK, Cairo, Fontconfig,
>> FreeType, Pango, Poppler, libPNG, libXML, libiconv, librsvg, pkg-config
>> as of my last counting:
>>
>> http://gnuada.sourceforge.net/pmwiki.php/Main/PartnerProjects
> 
> But that is also true of the GNUstep libraries. They call them
> "frameworks" and there are several of them.

Yep. I guess all of them, Gtk+, Qt, GNUstep and indeed Win32 are
Runtimes of there own. Either we use one of those - or we create our
very own all in Ada - which brings us very quickly to AdaOS ;-) .

Martin
-- 
mailto://krischik@users.sourceforge.net
Ada programming at: http://ada.krischik.com



  reply	other threads:[~2008-01-16  8:28 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
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 [this message]
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