From: Ludovic Brenta on
Martin Krischik wrote:
> Try:
>
> http://svn.eu.adacore.com/anonsvn/Dev/trunk
>
> for GMGPL version of GtkAda.

No. At the time when AdaCore switched licenses, I specifically asked
AdaCore what the licensing terms were for sources in the CVS server
(which is now Subversion). Robert Dewar said it was pure GPL, like
everything on the libre site, even though the source files contain the
"special exception" text. I then suggested they remove the "special
exception" from the sources to reduce confusion, but they never did.

If you don't believe me (I wouldn't take offense as IANAL :) ) then by
all means, please ask AdaCore.

There are two ways to get a GMGPL version of GtkAda nowadays: take the
last GMGPL public release, namely version 2.4, from Debian 3.1 "Sarge"
and a few other places; or ask a paying AdaCore customer for a copy
(yes, this is legal).

--
Ludovic Brenta.
From: Martin Krischik on
Ludovic Brenta schrieb:

> If you don't believe me (I wouldn't take offense as IANAL :) ) then by
> all means, please ask AdaCore.

No, I rather claim ignorance and go by the licence statement in the
source code ;-) .

> There are two ways to get a GMGPL version of GtkAda nowadays: take the
> last GMGPL public release, namely version 2.4, from Debian 3.1 "Sarge"
> and a few other places; or ask a paying AdaCore customer for a copy
> (yes, this is legal).

No need, I work for an AdaCore customer and I have my own gnat tracker
account :-) .

Martin
--
mailto://krischik(a)users.sourceforge.net
Ada programming at: http://ada.krischik.com
From: Ludovic Brenta on
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 latter
would require both the Ada and Objective-C runtime libraries...

--
Ludovic Brenta.
From: Martin Krischik on
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.

To make use of that API easier special languages like Objective-C and
Objective-C++ are used. Those languages can be implemented by a
preprocessor (currently they are not) so I believe creating an
Objective-Ada preprocessor should be possible - especially since Ada
does not use '[' ']' and '@' ;-).

We would not be the first: Google-ing shows that Objective-TCL [1],
Objective-Perl [2] already exists and Objective-Cobol and
Objective-Fortran are rumoured [3] - even talk about Objective-Ada isn't
new [3].

The advantage is that once we have an preprocessor the hole library
becomes available. That's unlike Gtk or Qt where we have to write a
separate binding for each class we want to use and where - forever - we
will be hobbling behind.

> The latter
> 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.


Martin

[1]
http://www.usenix.org/publications/library/proceedings/tcl95/bogdanovich.html
[2] http://www.ddj.com/web-development/184416144
[3] http://lists.apple.com/archives/Cocoa-dev/2001/Sep/msg00947.html

--
mailto://krischik(a)users.sourceforge.net
Ada programming at: http://ada.krischik.com
From: Ludovic Brenta on
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.
>
> To make use of that API easier special languages like Objective-C and
> Objective-C++ are used. Those languages can be implemented by a
> preprocessor (currently they are not) so I believe creating an
> Objective-Ada preprocessor should be possible - especially since Ada
> does not use '[' ']' and '@' ;-).

An "Objective-Ada" preprocessor is unnecessary because Ada is already
object-oriented, and now even has interfaces similar to Objective-C's
protocols. Therefore, one would only need a binding generator that
would produce Ada specifications with pragma Import statements from
Objective-C specifications. Of course, such a binding generator would
have to know how the particular Objective-C compiler mangles names.

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.

> We would not be the first: Google-ing shows that Objective-TCL [1],
> Objective-Perl [2] already exists and Objective-Cobol and
> Objective-Fortran are rumoured [3] - even talk about Objective-Ada isn't
> new [3].

That was before Ada 95 added tagged types.

> The advantage is that once we have an preprocessor the hole library
> becomes available. That's unlike Gtk or Qt where we have to write a
> separate binding for each class we want to use and where - forever - we
> will be hobbling behind.

I don't think the preprocessor you speak of would solve anything; the
binding generator might but beware of the stumbling blocks I
mentioned.

> > The latter
> > 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 and that's
intentional: one of the design goals of GTK+ from the onset is to
facilitate bindings to other languages.

--
Ludovic Brenta.