It is indeed pretty cool and has most of what I need except for things like scientific (numerical) libraries. You could import GSL via FFI I suppose as both the free GNU and the Adacore commercial compiler are GCC based I think (I know the GNU one is for sure). That is another slight problem of mine. I think there is an exception to where you don't have to release source if you use the GNU Ada toolchain, but all the common libraries provided by Adacore are GPL'd so you likely have to skip that version and strictly use what I imagine is the expensive Adacore commercial version (no GPL) if you have IP issues.
The language itself is pretty awesome and I'd have no issue using it over C/C++ in most situations. They might have sane pricing for their commercial compiler, IDE, and Spark if you're just one person and not a government avionics shop, but I'm not sure. I'd love for Adacore to respond if they have someone in their communications group who has permission to do so.
I try to keep up with their blog posts and love their new logo. Like a lot of old computing technologies (Lisp, Smalltalk, Forth, APL...etc) I feel like Ada just didn't have the computing power or marketing it needed when it was introduced. I know I'd certainly feel safer riding on pretty much any transportation written in Ada over C or C++. I'm happy to see Smalltalk getting a second shot with Pharo, Lisp with Racket and Clojure (even Common Lisp is seeing a slight resurgence) and I wish the Ada community good luck!
AdaCore maintains the GNU compiler as well. As a result, the GNU and AdaCore compiler (Community and Commercial) are essentially the same. The Ada community in fact just calls them all GNAT and then specifies further if it's relevant. The main difference is that GNU can lag behind a bit historically, but recently there has been some initiative from inside AdaCore to tackle that issue and they've done a great job.
Grab whichever is easiest for you to get started with. It's a weird and ultimately meaningless situation license-wise. If and when licenses matter, grab the GNU version. Unless you're doing something that requires a support contract anyway, then you'll end up with Pro.
I really wish AdaCore would do something about that Community edition. I have no idea what purpose it is supposed to have. In my opinion, right now it's mostly a thorn in the communities side. All it does is create a bunch of hesitation and confusion about the licenses and compiler capabilities for newcomers. As a result, before people even start with Ada they're getting deep into license discussions which is just a wonderful first impression. And worst of all, it's all basically for nothing because they're at most slightly different versions of the same software with a different license.
The idea of having Ada core pro under dual gpl/commercial lisence (not lgpl) is indeed an odd one. But there's also fsf/gnu ada with gcc, that has the usual lpgp (gpl with link exception) licensing.
Note that I'm referring to GNAT PRO & GNAT Community. I believe licensing are the main differences. Someone above kindly pointed out that not all the community libraries are GPL (some could be BSD), but I prefer the software I might use for production to have something closer to an MIT license.
In my eyes, I'd rather the default GNAT Community have a very liberal MIT license for the compiler and all the libraries, and have the IDE (GPS I believe),SPARK, support, and maybe some libraries as commercial products. That might not make sense for their customer base though.
Don't know much about pricing and IP since I've only been doing open source/hobby projects... But I've heard this complain a lot. Maybe it has something to do with that when Ada is used it's often for very high stake projects, and they need very expensive insurance?
> I know I'd certainly feel safer riding on pretty much any transportation written in Ada over C or C++.
Nah, mostly it's just (IMO) the result of AdaCore being needlessly confusing. AdaCore also maintains the GNU compiler, which is what their Pro offering is based on. I'm not really sure why the Community edition exists, as it's basically at most a slightly different version than the GNU offering.
Someone showed me that GCC Ada supports older versions of Ada, while AdaCore's Community edition does not. There are other differences of which I am unaware, but I found this difference to be a particularly major and surprising one.
I'm not sure what you mean. Ada hasn't ever undergone any breaking changes I'm aware of, so even Ada 83 would be valid Ada 2012. I'm not sure how a compiler could lose support of older versions.
The only difference I've ever run into was an AdaCore-defined (as in not part of the standard) aspect that was known but not fully implemented by GCC Ada, while the Community edition did have it. That's since been added to GCC as well.
Ada is also interesting in the fact that it has evolved a lot since its inception, e.g. Ada 2012 added design by contract and new concurrency constructs.
I really hope it will get a renaissance like, for example, Erlang.