
A learning platform to teach the Ada and SPARK programming languages - xeeeeeeeeeeenu
https://learn.adacore.com/
======
jonathanstrange
Ada is a great language, I learned it and planned on using it for programs and
libraries that need performance. I gave up because of the licensing situation.

Unless you plan to write 100% GPL software it's pointless. The FSF version of
GNAT under mGPL license is always lagging behind and many essential libraries
are still under GPL. Moreover, you will be pretty much locked into AdaCore as
the compiler producer even with the free version, since AdaCore is the single
main contributor and pushes the latest standards like Ada 2012. AFAIK, no
other compiler supports Ada 2012, and the other compilers are proprietary and
expensive anyway.

AdaCore is at the same time the biggest maintainer and biggest destroyer of
Ada. They make sure that only the GPL version is easy to install, easy to get,
fully maintained, and every program you deploy that is compiled with that
version is automatically under the GPL.

That's why Ada is slowly dying and I'm not sure the good folks at AdaCore
really get it.

~~~
elteto
Hmmm... Is that how the GPL works? Or is AdaCore adding a rider to the GPL
saying that all software compiled with their tools must also follow the GPL?

~~~
xeeeeeeeeeeenu
Linking with GNAT standard library is the problem, it's not about the compiler
itself.

~~~
Fabien_C
And only for the Community release.

------
insulanian
I have a soft spot for languages with strong type systems and was always
attracted by ADA, but newer met anyone using it in the wild.

Is it used anywhere outside of defense and flight industry?

~~~
acomjean
I programmed a radar system with Ada, I guess that counts a defense system.
The language grew on me. I miss parts of it, but it suffers from the chicken
egg problem. Not enough people using it to make useful libraries from it so it
doesn't get a lot of new users.

Also the lack of a really good compiler that was free held ada back, but that
shouldn't be a problem anymore.
([https://en.wikipedia.org/wiki/GNAT](https://en.wikipedia.org/wiki/GNAT))

The other knock on ada was it was slow. All the runtime checks eat up cpu
resources which made it slower than the competition.

The language and package system are solid though. I was switching between C
and Ada for a while and I found programming in Ada to be be a better
experience.

~~~
pecg
> The other knock on ada was it was slow.

I'm curious, is the compilation time that takes too much, or is it the
execution time? I'm really interested in learning the language, but I don't
want to end-up with programs that generate slower native code, compared to
that of C. What's your experience with it?

~~~
PeCaN
It's not any slower than C. In some cases the compiler can actually generate
better code because of stricter rules on pointer aliasing. You can also do
more with only stack allocation in Ada, which is a huge win.

It does generate some extra code for things like range checks and checking
invariants, i.e. things you can skip in C to write buggy code.

------
mcguire
If you are at all interested in software verification, as an alternative to
dependently typed languages, GNAT, SPARK, and the GNAT IDE (whose name escapes
me) make the best environment for it.

Dafny is probably the best language, though, if it gets any documentation.

------
qop
If a person wanted to write ada outside of a government agency, what are the
options?

~~~
Jtsummers
Defense and aviation are probably the two biggest industries that make use of
it. Aviation software may use it even when not doing government work (where it
used to be mandated) if they see value in the tools and capabilities.

