comp.lang.ada
 help / color / mirror / Atom feed
From: Maciej Sobczak <see.my.homepage@gmail.com>
Subject: Re: What's stopping you from using Ada for your next commercial project?
Date: Wed, 9 Mar 2011 14:04:14 -0800 (PST)
Date: 2011-03-09T14:04:14-08:00	[thread overview]
Message-ID: <eec8247f-77e8-4f8a-9d2d-442b6211bf8f@i3g2000vby.googlegroups.com> (raw)
In-Reply-To: m2r5aguis4.fsf@pushface.org

On 9 Mar, 21:43, Simon Wright <si...@pushface.org> wrote:

> > 3. Availability of reasonably robust and up to date compilers.
> > Unfortunately things are very bad for Ada in this regard - compilers
> > are either bug-ridden or outdated.
>
> Speaking only of GCC, is this actually any different for Ada vs C or
> C++? (and the outdated ones have their own bugs ...)

Well, my experience with the C and C++ support in the GCC family is
very positive. In fact, I have never (like in "not even once")
encountered a situation where the g++ would surprise me or crash in
front of my eyes. It has its own issues that relate more to the target
language (like the ability to create inconsistent binary from
mismanaged source files) or to its evolution strategy (like breaking
ABI almost every release), but really, it has never surprised me with
bugs coming from its own implementation.
This is much different with GNAT, which is unfortunately so bug-ridden
as to really slow down the development work. The difference is even
more frustrating if we compare the kind of code that I used in these
languages - that is, very advanced or even outright experimental code
in C++ vs. tutorial-level examples in Ada.
I have submitted several bug reports for GNAT on my own and if you
search the archives of this group you will find my (almost) regular
rants about that.

For the practical example - I have just announced the availability of
YAMI4 v. 1.3.0, which involved quite a bit of Ada development. I have
decided to use three different versions of GNAT to ensure that the
code compiles properly for the widest audience. The result - it was
not possible. The compilers either crashed or produced code with
runtime errors. This forced me to introduce *very* ugly workarounds,
which, ironically, resulted in additional compiler warnings on another
version. That is, I had to agree to have compiler warnings on version
X only to compile the code at all on version Y.

If you need some numbers to back these observations, just download the
YAMI4 source package and do this:

$ find . -name '*.ad[bs]' | xargs grep workaround

there are 57 entries.

I estimate that this additional effort was somewhere between 33% and
50% of the whole work.

The YAMI4 project contains also code in C++, Java, Python and (most
recently) C#, so it might be a good platform for comparisons. From
these, only Python proved to be problematic on 64-bit platforms due to
internal interpreter bugs. C++, Java and C# did not exhibit *any*
problems related to compilers or runtime libraries.

I write all this because I try to be frank and honest - even though it
does not look very well for Ada. These are important factors to take
into account when choosing the technology for the next project
(whether commercial or not), because obviously the additional effort
is not negligible.

Having said this I must add that I really hope that things will
improve in the future and this is why I was willing to make this
investment. However, do not expect every company out there to do the
same, as obviously the decision dynamics are usually different.

What are the alternatives for small companies that want to use Ada?
I don't know, really. I have approached Aonix (now Atego), but they
have apparently frozen 15 years ago and stopped responding when I
mentioned that I need Ada 2005 features. Rational is out of question
if its price range is as described in another post. SofCheck might be
a viable solution - but then the price difference (reminder: g++ costs
0$) is another factor to take into account.

--
Maciej Sobczak
http://www.inspirel.com/



  reply	other threads:[~2011-03-09 22:04 UTC|newest]

Thread overview: 128+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-08 22:23 What's stopping you from using Ada for your next commercial project? Lucretia
2011-03-09  3:19 ` Hoàng Đình Long
2011-03-09  8:41   ` Ludovic Brenta
2011-03-09  8:58 ` Maciej Sobczak
2011-03-09 14:17   ` Georg Bauhaus
2011-03-09 14:21     ` localhost
2011-03-09 15:06       ` Georg Bauhaus
2011-03-09 15:17         ` localhost
2011-03-10 14:20     ` Peter C. Chapin
2011-03-10 14:31       ` Thomas Løcke
2011-03-10 16:01         ` Georg Bauhaus
2011-03-10 16:07       ` Georg Bauhaus
2011-03-10 17:31         ` Dirk Craeynest
2011-03-09 20:43   ` Simon Wright
2011-03-09 22:04     ` Maciej Sobczak [this message]
2011-03-10  0:38       ` Lucretia
2011-03-10  7:52         ` Maciej Sobczak
2011-03-10  8:06       ` Thomas Løcke
2011-03-10  8:26         ` Nasser M. Abbasi
2011-03-10 10:28           ` Thomas Løcke
2011-03-10 10:45           ` J-P. Rosen
2011-03-11  9:40           ` Hoàng Đình Long
2011-03-13 11:09             ` Yannick Duchêne (Hibou57)
2011-03-13 10:55           ` Yannick Duchêne (Hibou57)
2011-03-10  8:27         ` Ludovic Brenta
2011-03-10 10:35           ` Thomas Løcke
2011-03-10 11:12             ` Dmitry A. Kazakov
2011-03-10 12:17               ` Georg Bauhaus
2011-03-10 12:27               ` Thomas Løcke
2011-03-10 12:58                 ` Dmitry A. Kazakov
2011-03-10 13:30                   ` Georg Bauhaus
2011-03-10 13:49                   ` Maciej Sobczak
2011-03-10 14:31                     ` Dmitry A. Kazakov
2011-03-10 14:45                       ` Thomas Løcke
2011-03-10 15:17                         ` Dmitry A. Kazakov
2011-03-13 11:38                       ` Yannick Duchêne (Hibou57)
2011-03-13 11:58                         ` Dmitry A. Kazakov
2011-03-13 12:17                           ` Yannick Duchêne (Hibou57)
2011-03-13 14:35                             ` Dmitry A. Kazakov
2011-03-14  2:38                               ` Yannick Duchêne (Hibou57)
2011-03-14  8:43                                 ` Dmitry A. Kazakov
2011-03-10 21:11                 ` Randy Brukardt
2011-03-11  8:12                   ` Manfred Kremer
2011-03-11 12:04                     ` Peter C. Chapin
2011-03-11 22:40                       ` Randy Brukardt
2011-03-11 23:24                         ` Dan
2011-03-10 13:33           ` Maciej Sobczak
2011-03-10 17:08           ` Dirk Craeynest
2011-03-14 19:11           ` Florian Weimer
2011-03-14 21:10             ` Ludovic Brenta
2011-03-13 10:51         ` Yannick Duchêne (Hibou57)
2011-03-13 10:24       ` Yannick Duchêne (Hibou57)
2011-03-13 21:43         ` Maciej Sobczak
2011-03-13 22:04           ` Thomas Løcke
2011-03-14  0:09           ` Simon Wright
2011-03-14  2:57             ` Yannick Duchêne (Hibou57)
2011-03-14 16:45               ` Pascal Obry
2011-03-14 18:29               ` Simon Wright
2011-03-14 18:37             ` Florian Weimer
2011-03-14 19:43               ` Simon Wright
2011-03-14  2:53           ` Yannick Duchêne (Hibou57)
2011-03-13 10:29       ` Yannick Duchêne (Hibou57)
2011-03-13 21:48         ` Maciej Sobczak
2011-03-13 10:34       ` Yannick Duchêne (Hibou57)
2011-03-13 11:42         ` Simon Wright
2011-03-13 12:06           ` Yannick Duchêne (Hibou57)
2011-03-12 19:55     ` Florian Weimer
2011-03-25 12:36   ` Marco
2011-03-25 22:30     ` Maciej Sobczak
2011-03-26 12:00       ` Georg Bauhaus
2011-03-27 21:13         ` Yannick Duchêne (Hibou57)
2011-03-27 20:49     ` Yannick Duchêne (Hibou57)
2011-03-09  9:11 ` Thomas Løcke
2011-03-12 21:50   ` Lucretia
2011-03-09 10:39 ` localhost
2011-03-09 11:24   ` Nasser M. Abbasi
2011-03-09 11:38     ` localhost
2011-03-09 14:16       ` Georg Bauhaus
2011-03-10 10:21     ` Gerd
2011-03-10 11:27       ` Dmitry A. Kazakov
2011-03-10 11:49       ` Georg Bauhaus
2011-03-11  8:37       ` Stephen Leake
2011-03-11 12:08         ` Peter C. Chapin
2011-03-11 15:15         ` Dmitry A. Kazakov
2011-03-11 15:37         ` Hyman Rosen
2011-03-12 20:26           ` Florian Weimer
2011-03-26 15:15         ` Gerd
2011-03-26 16:20           ` Pascal Obry
2011-03-09 11:36   ` Ludovic Brenta
2011-03-09 11:42     ` localhost
2011-03-10  2:22 ` KK6GM
2011-03-11 14:01   ` Rego
2011-03-11 15:20     ` KK6GM
2011-03-11 16:42       ` Rego
2011-03-11 18:15         ` KK6GM
2011-03-11 20:09           ` Thomas Løcke
2011-03-11 16:46       ` Georg Bauhaus
2011-03-14 12:18         ` jonathan
2011-03-14 14:12           ` KK6GM
2011-04-08 12:53             ` Jacob Sparre Andersen
2011-03-14 18:00           ` Niklas Holsti
2011-03-12 12:47       ` Stephen Leake
2011-03-12 18:15         ` KK6GM
2011-03-13 17:55           ` Lucretia
2011-03-14  3:28             ` Yannick Duchêne (Hibou57)
2011-03-15  0:40               ` Lucretia
2011-03-14  3:20         ` Yannick Duchêne (Hibou57)
2011-03-14  3:17       ` Yannick Duchêne (Hibou57)
2011-03-14 12:15         ` KK6GM
2011-03-14 13:41           ` Yannick Duchêne (Hibou57)
2011-03-14 14:05             ` KK6GM
2011-03-14 14:38               ` Peter C. Chapin
2011-03-14 14:07             ` Dmitry A. Kazakov
2011-03-14 14:00           ` Dmitry A. Kazakov
2011-03-14 14:09             ` KK6GM
2011-03-14 14:42               ` Yannick Duchêne (Hibou57)
2011-03-14 17:17                 ` Georg Bauhaus
2011-03-14 17:25                   ` Yannick Duchêne (Hibou57)
2011-03-14 20:04                     ` Simon Clubley
2011-03-14 22:12                       ` J-P. Rosen
2011-03-15 12:11                         ` Simon Clubley
2011-03-15 20:25                           ` J-P. Rosen
2011-03-15 14:55                         ` Yannick Duchêne (Hibou57)
2011-03-15 20:28                           ` J-P. Rosen
2011-03-15  4:10                       ` Yannick Duchêne (Hibou57)
2011-03-14 14:39             ` Yannick Duchêne (Hibou57)
2011-03-10 21:35 ` Gautier write-only
2011-03-13 12:04   ` Yannick Duchêne (Hibou57)
replies disabled

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