comp.lang.ada
 help / color / mirror / Atom feed
From: Agyaras <agyaras@kerekerdoe.hu>
Subject: Re: The future of Ada is at risk
Date: Sun, 06 Jan 2008 10:34:25 +0100
Date: 2008-01-06T10:34:25+01:00	[thread overview]
Message-ID: <agyaras-50CE35.10341806012008@news.inode.at> (raw)
In-Reply-To: 1199452391.7932.27.camel@K72

In article <1199452391.7932.27.camel@K72>,
 Georg Bauhaus <rm.tsoh+bauhaus@maps.futureapps.de> wrote:

> > I can confirm this. E.g. it is a major headache to get the GNAT compiler 
> > working under Mac OS X.
> 
> What do you think of http://www.macada.org/ ?

Yes, I know the site, and have downloaded the FSF gcc4.3 version from 
there ( both PPC and Intel). The problem is that this gcc sometimes 
cannot compile packages the "official" Apple gcc can. So one has to 
switch back and forth, using gcc4.3 for Ada work and the Apple gcc for 
other work (e.g. C++). This is probably Apple's fault though.

> >  AdaCore stopped distributing GNAT/GPS (GPL) for 
> > the Mac.
> 
> Huh? It is still there (the 2006 edition)
That is PowerPC only, based on gcc 3.4, with incomplete Ada2005 support. 
It would be nice to have GPS for Intel Macs, gcc4.2 at least, with 
complete Ada2005 support. I tried to compile GPS from the Linux sources 
(2007 edition) on the Mac and it turned to be very time-consuming, 
because GPS needs lots of libraries that in turn needed more 
libraries... finally I gave up, after I asked on this newsgroup and 
people told me that it was really difficult to do... but maybe the good 
folks at AdaCore have the proper setup and the know-how to do it.

> , and support for the
> later Intel based Macs is officially announced on the AdaCore
> supported platforms page.
I was perhaps not clear on this: I am missing the **GPL** editions of 
GNAT **and** the GPS IDE for a number of platforms. In 2007 the GPL-ed 
GNAT+GPS packages are available for Windows and 32-bit/64-bit Linux 
only. I cannot afford the license costs.

> >  There has never been a GNAT/GPS package for Solaris AFAIK. 
> > etc.etc.
> 
> Huh? Please, have a look. It is still there.
Sorry, I meant the **GPL** editions (see above).

IMHO it is absolutely necessary to provide freely available compilers 
and IDEs for as many platforms as possible to make a language popular. 
People should have the opportunity to "give Ada a spin" free of charge, 
even if they live outside the Intel X86/Windows/Linux galaxy.

GPS is great for learning Ada because you can "look" into the sources of 
the spec files of the standard library. It helped me a lot when I was 
learning the containers: John Barnes' otherwise excellent Ada2005 book 
is sometimes a bit tight-lipped on how these work.

> >  she needs simple but powerful string handling, 
> 
> I don't see how simple but powerful string handling
> is missing with GNAT's SPITBOL support. [...]
> Even the String packages are full of useful algorithms and
> data structures, even though there is no general character
> type in Ada.

The problem for many people starts earlier. Consider these two programs:-

-- Ada (221 chars)
with Ada.Strings.Unbounded, Ada.Text_IO.Unbounded_IO;
use Ada.Strings.Unbounded, Ada.Text_IO.Unbounded_IO;

procedure str is
   Strg: Unbounded_String := To_Unbounded_String("ergonomy");
begin
   Put_Line(Strg);
end str;

// C++ (148 chars)
#include <string>
#include <iostream>
using namespace std;

int main(int argc, char *argv[])
{
    string Strg("ergonomy");
    cout<<Strg<<endl;
}

The fact that the type of the string constant "ergonomy" is String 
requires the (semantically unnecessary) conversion To_Unbounded_String() 
in the Ada version. This is what I meant by clumsiness, not even 
mentioning the separate I/O library necessary to print this string 
afterwards. You don't really want to go through all these hoops just to 
print a string...

I think that the default string type should be the unbounded string, 
just like in C++, for ergonomic reasons. (Fixed strings may be needed in 
special cases. But the bounded string type family, where you have to 
convert from a 70-char string type to a 71-char string type, is an 
abomination and should be forgotten quickly.) And there should be only 
one I/O library, not dozens, otherwise programming ergonomics suffers, 
and that frightens people away. We should keep in mind that CPU time is 
cheaper than "brain time", so let the computer suffer a bit more 
instead. :-)

Talking about safety and ergonomics: how do you tell which Ada 
subprograms raise which exceptions? Well, you cannot. The Java designers 
got this absolutely right: the method signatures can contain a throws() 
clause. Either you catch an exception or let it propagate and the 
compiler complains if you omit the throws() in the latter case. It would 
be nice if the Ada2005 standard could be amended with a similar 
mechanism. If it can be done in Java, then it certainly could be done in 
Ada! :-)

"Make computers work so that humans won't have to"

A

-- 
"Non est volentis, neque currentis, sed miserentis Dei"



  reply	other threads:[~2008-01-06  9:34 UTC|newest]

Thread overview: 126+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-12-29  3:06 The future of Ada is at risk Rico Secada
2007-12-29 10:19 ` Pascal Obry
2007-12-29 19:24   ` Jerry van Dijk
2007-12-29 11:14 ` Dmitry A. Kazakov
2007-12-29 11:21 ` Georg Bauhaus
2007-12-30 12:30   ` Florian Weimer
2007-12-30 19:42     ` okellogg
2007-12-30 20:22       ` Florian Weimer
2007-12-31  0:21         ` Samuel Tardieu
2007-12-30 23:30       ` Simon Wright
2007-12-31  8:12     ` I. Levashew
2007-12-31  8:43       ` Florian Weimer
2007-12-31 10:16       ` Rico Secada
2007-12-31 10:31         ` Florian Weimer
2007-12-31 15:20         ` Georg Bauhaus
2007-12-31 21:35           ` Paul
2008-01-01 12:41           ` Florian Weimer
2007-12-29 16:19 ` I. Levashew
2007-12-29 16:24 ` anon
2007-12-29 19:16   ` Rico Secada
2007-12-30  0:38     ` The future of C# " Georg Bauhaus
2008-01-07  8:01   ` The future of Ada " Nasser Abbasi
2008-01-07 11:09     ` Robert A Duff
2008-01-07 11:54       ` Nasser Abbasi
2007-12-30  8:04 ` Phaedrus
2007-12-30  8:56   ` Pascal Obry
2007-12-30 21:42     ` Phaedrus
2007-12-30 23:08       ` Brian May
2007-12-30 23:32         ` Phaedrus
2007-12-31 12:33       ` I. Levashew
2008-01-02 10:46         ` Colin Paul Gloster
2007-12-30 11:08   ` Georg Bauhaus
2007-12-30 22:23     ` Phaedrus
2007-12-30 21:30   ` adaworks
2007-12-30 23:33     ` Phaedrus
2007-12-31  0:33   ` Samuel Tardieu
2008-01-01 14:14 ` Gautier
2008-01-01 14:46   ` Dmitry A. Kazakov
2008-01-04  8:45 ` Agyaras
2008-01-04  9:36   ` Pascal Obry
2008-01-04 13:13   ` Georg Bauhaus
2008-01-06  9:34     ` Agyaras [this message]
2008-01-06 10:26       ` Dmitry A. Kazakov
2008-01-06 12:03       ` Georg Bauhaus
2008-01-06 13:03       ` Frank J. Lhota
2008-01-07  3:46       ` Brian May
2008-01-08  2:22       ` Randy Brukardt
2008-01-04 23:17   ` Brian May
2008-01-05 10:22   ` Ludovic Brenta
2008-01-05 15:16     ` Robert A Duff
2008-01-05 15:36       ` Dmitry A. Kazakov
2008-01-05 15:46         ` Robert A Duff
2008-01-05 16:39           ` Georg Bauhaus
2008-01-05 17:14           ` Dmitry A. Kazakov
2008-01-06 22:08             ` Robert A Duff
2008-01-09  8:19   ` ahab
2008-01-05 10:21 ` Michael Bode
2008-01-05 10:30   ` Ludovic Brenta
2008-01-05 10:55     ` Michael Bode
2008-01-05 13:09       ` Ludovic Brenta
2008-01-05 13:32         ` Michael Bode
2008-01-05 20:36           ` Jeffrey R. Carter
2008-01-05 22:50             ` Michael Bode
2008-01-05 23:42               ` Jeffrey R. Carter
2008-01-05 11:11     ` Georg Bauhaus
2008-01-05 11:40       ` Dmitry A. Kazakov
2008-01-05 13:29         ` Georg Bauhaus
2008-01-05 14:35           ` Dmitry A. Kazakov
2008-01-05 17:42             ` Georg Bauhaus
2008-01-05 18:40               ` Dmitry A. Kazakov
2008-01-05 23:47             ` Brian May
2008-01-06  7:03               ` Vadim Godunko
2008-01-06  8:42               ` Dmitry A. Kazakov
2008-01-06 12:05                 ` Georg Bauhaus
2008-01-06 12:23                   ` Dmitry A. Kazakov
2008-01-06 20:13                     ` Georg Bauhaus
2008-01-06 20:50                       ` Dmitry A. Kazakov
2008-01-06 22:12                         ` Georg Bauhaus
2008-01-07  0:11                 ` Brian May
2008-01-07  5:23                   ` Per Sandberg
2008-01-08  0:04                     ` Brian May
2008-01-08  6:53                       ` Simon Wright
2008-01-08 14:35                         ` Vadim Godunko
2008-01-08 20:24                   ` Graham
2008-01-08 20:44                   ` Pascal Obry
2008-01-06  9:23               ` Pascal Obry
2008-01-07  0:05                 ` Brian May
2008-01-05 20:34   ` Jeffrey R. Carter
2008-01-05 20:52     ` Michael Bode
2008-01-05 21:40       ` Georg Bauhaus
2008-01-05 23:45       ` Jeffrey R. Carter
2008-01-06 11:16         ` Michael Bode
2008-01-06 19:20           ` Jeffrey R. Carter
2008-01-06 20:27             ` Michael Bode
2008-01-07 10:23   ` Stephen Leake
2008-01-07 17:54     ` Michael Bode
2008-01-11  7:21 ` Phaedrus
2008-01-11  8:49   ` Maciej Sobczak
2008-01-11 13:10     ` Peter C. Chapin
2008-01-11 15:41     ` Hyman Rosen
2008-01-12 14:31       ` Surfer
2008-01-12 20:54         ` Gautier
2008-01-11 19:58     ` Tero Koskinen
2008-01-11 21:41       ` Georg Bauhaus
2008-01-11 13:02   ` framefritti
2008-01-11 15:29     ` Peter C. Chapin
2008-01-11 17:24       ` Gary Scott
2008-01-11 18:20   ` Jeffrey R. Carter
2008-01-11 18:51     ` Gary Scott
2008-01-12  0:21       ` Jeffrey R. Carter
2008-01-12  8:15         ` Pascal Obry
2008-01-12 10:11           ` Brian May
2008-01-12 10:24             ` Pascal Obry
2008-01-12 17:43               ` Gary Scott
2008-01-12 18:14                 ` Pascal Obry
2008-01-12 22:24                   ` Georg Bauhaus
2008-01-13  3:54                     ` Ray Blaak
2008-01-13 14:05                       ` (see below)
2008-01-14  1:46                         ` Ray Blaak
2008-01-14  1:49                         ` Ray Blaak
2008-01-23  2:52                 ` adaworks
2008-01-12 10:47             ` Dmitry A. Kazakov
2008-01-11 22:32   ` Robert A Duff
2008-01-12  4:06     ` Phaedrus
2008-01-12 15:29       ` Georg Bauhaus
2008-01-12 20:55     ` jtg
replies disabled

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