From: artifact.one on
Hello.

I am a long time C programmer (10 years plus), having a look
at Ada for the first time. From my (inadequate) testing, it seems
that performance of average Ada code is on par with average
C code, and there's a clear advantage in runtime safety. The
GNU ada compiler makes pretty sure that there are very few
platforms without easy access to Ada, so portability should be
on at least an equal footing too.

My question is: how come Ada isn't more popular?

This isn't intended to start a flame war, I'm genuinely interested.

thanks,
MC

From: adaworks on

<artifact.one(a)googlemail.com> wrote in message
news:1169531612.200010.153120(a)38g2000cwa.googlegroups.com...
>
> My question is: how come Ada isn't more popular?
>
Ada suffered, in its early days, from a convergence of several
things. One is that the designers of the language did not anticipate
the impact of the personal computer and the democratization of
computing. There were other factors, as well.

1) The DoD mandated Ada before there were any good compilers
or development environments in place. That began a routine
practice of rubber-stamping waivers to use other languages.

2) The compiler publishers, having a captive audience, inflated the
price of compilers and tools, making Ada unattractive for anyone
in the non-DoD world. For example, Alsys sold a compiler for
the personal computer at $4000 per copy thereby putting out
of the range of most companies and every hobbyist.

Turbo Pascal and other alternatives were already in place and
much cheaper than Ada. A few brave souls tried to compete
with products such as RR Software's Janus Ada and Meridian's
AdaVantage, but the full environment (e.g., integrated editors,
debuggers, etc.) were not in place they were for Turbo Pascal.

3) Inept DoD management of the Ada initiative. Sometimes it seemed
that the DoD was trying to make Ada a bad choice for businesses.
The public line was that they wanted commercial users, but the
practices often put barriers in the way.

4) Other languages were cheaper to acquire, cheaper to use, and had
no copyight associated with them. The copyright was eventually
removed, but late.

5) The earliest compilers were not uniformly good. I recall the mainframe
compiler from Telesoft was, when compared to other language choices,
simply terrible. It was slow, had an awkward development environment,
and did not support the central features of the mainframe very well.

Many of those early compilers were "checkbox" compilers. On the form
where one had to check-off "Validated Ada Compiler" the fact that a
validated
compiler was available was considered enough. One compiler I recall quite
vividly was for the Tandem. Although the compiler was validated, that same
compiler was not integrated into the rest of the system tools, and barely
supported by the operating system. The word in the Tandem management
was that no one was expected to take Ada seriously, but the checkbox had
to be supported. This was quite widespread in the industry.

6) Really good compilers began to appear around 1989. By then Ada's reputation
for being slow, cumbersome, and hard to use had already been firmly set.

7) Instruction in the language was bad. I recall a U.S. Navy Admiral
complaining
about how hard it was to teach anyone Ada. He described the efforts he put
in place to make this happen. I told him he had hired people to do the
teaching
who were incompetent. That was true, but they had PhD's and he thought
that
should have ensured success. The fact was that those teachers had not yet
come
to a full understanding of the Ada and their own confusion was more a source
of
obfuscation than enlightenment for the students.

8) Grabbing defeat from the jaws of victory. In the mid-90's, when Ada became
a powerful alternative to other languages, when tools were in place, the
language
modernized, and the availability of low-cost (or free) compilers could have
made
it attractive, the DoD lost its nerve and gave the impression that Ada was
no longer
part of the DoD language requirement. A lot of people misinterpreted this
and thought
the DoD had decided to abandon Ada entirely.

9) Traitors. Some people who were previously charged with promoting Ada, in
particular certain former AJPO officials, once having left government,
exploited
their former role and joined the forces against Ada. They were able to
use their
title as former ... to gain credibility and lobby against the use of Ada in
exactly
the places where it was appropriate to lobby for it.

Ada is not now, nor has it ever been, the perfect language. There is no perfect
language. However, anyone who understands Ada and has a good understanding
of the competing technologies realizes that Ada continues to be the most
appropriate
choice when the requirement is for a language that will improve the probability
of
an error-free software product at a reasonable cost. The alternatives, mostly C
and C++ are generally less dependable. In fact, I often wonder why anyone would
pick a language that is inherently error-prone (e.g., C++) and expect a result
that
is error-free.

If one does an objective comparison of Ada to its alternatives, in the design
and
constuction of dependable software, Ada will come in with high marks -- higher
than most alternatives. If one is looking for a language that is well-suited
to
supporting a long-lived software system, Ada is certainly better than most of
the alternatives.

More could be said in favor of Ada. I will leave that more to others.

Richard Riehle





From: artifact.one on
Ah, politics and dramatics! It's had quite a history then - always
a killer.

Thanks for the impromptu documentary.
MC

From: Stephen Leake on
artifact.one(a)googlemail.com writes:

> I am a long time C programmer (10 years plus), having a look
> at Ada for the first time. From my (inadequate) testing, it seems
> that performance of average Ada code is on par with average
> C code, and there's a clear advantage in runtime safety. The
> GNU ada compiler makes pretty sure that there are very few
> platforms without easy access to Ada, so portability should be
> on at least an equal footing too.
>
> My question is: how come Ada isn't more popular?

Because most people don't have the same attitude towards language
evaluation that you do.

Most that I've actually asked have the attitude "C was what I learned
in college, and it's good enough for me".

Or, in managers, "everyone else is using C, so it must be the best
language". When I point out that far more programs are written in
Visual Basic, or Excel, they look very puzzled :).

Welcome to enlightenment :).

--
-- Stephe
From: Alex R. Mosteo on
artifact.one(a)googlemail.com wrote:

> Hello.
>
> I am a long time C programmer (10 years plus), having a look
> at Ada for the first time. From my (inadequate) testing, it seems
> that performance of average Ada code is on par with average
> C code, and there's a clear advantage in runtime safety. The
> GNU ada compiler makes pretty sure that there are very few
> platforms without easy access to Ada, so portability should be
> on at least an equal footing too.
>
> My question is: how come Ada isn't more popular?

Others have given longer scoped responses, and I will concentrate on the
hobbyist POV (I have felt an Ada hobbyist for a long time now): there is a
catch-22 problem with Ada and it is the lack of libraries. This is a
relative problem, consider these points.

1) The standard library is really standard, so this is an advantage if it
does all you need. Also some features (e.g. fixed point, bound checking,
tasking!) are in the language so you don't need extra wrappers around the
basic language or OS.

2) There's no good, easy, almost automatic C binding generator, although the
language has well defined mechanisms for C interfacing. Yes, there was some
generator. No, it is not trivial at present to get it running in my
experience. There's some effort to have Ada integrated into SWIG; this is
promising and IMHO an important selling point to newcomers.

3) There are bindings for quite some important things: Gtk+, Xml parser,
Unicode, CORBA, databases...

Summarizing, the Ada programmer feels a bit pariah when he sees his fellow
C/C++/java friends trying the latest and greatest version of some library.
Either it is unavailable for Ada, or is not up to date, or has to invest
some time in creating or tweaking a binding.

This is something that, as I said, may be important or not at some point,
depending on what you need to do. Also going against the majority of
colleagues is a burden. In my lab almost all development is done in matlab,
C or C++, and these are not all CS people but from other engineering
branches too. It's a shock when you have to use other's code and start to
see random pointers in function declarations, arcane syntax for complex
datatypes (because typedef seems a forbidden word) and so on. In my case,
Ada isn't event a obscure language: it is taught in my university and has
good backing among several high-profile teachers. Even so, I feel very
alone... :)