> Incorrect, AdaCore just packages their libs with their version of the compiler, with FSF, you have to build them yourself, which is a pain. But they are working on that.
Various fairly essential libraries maintained by AdaCore are under GPL, so you could not use them for non-GPL software that is distributed. That's what I meant by "incomplete", because the FSF version was traditionally used as the free option for developing distributed, proprietary software. AdaCore has always blocked that by making essential libraries GPL instead of, say, LGPL.
If you used AdaCore it didn't matter, since either you were forced to make your program GPL anyway, or you paid for a commercial license.
> MGPL hasn't been a thing for at least 10 years now. The FSF version if GPLv3 with linking exception.
The question asked was why Ada was not more successful / popular. Your correction just adds more evidence to the licensing confusion. The problem is you can't even be certain it stays a certain way.
> The syntax is not special, it's like any other, it's defined by a grammar, as are all languages.
No, Ada has a rather special grammar in comparison to most other languages, because it specifies every construct on its own, and that is one of the reasons why it is harder to learn than other languages. Grammars for other languages are much more compact and use more shared non-literals.
> all languages are "complete" to some degree
That's not the point. Ada provides much more functionality than most other languages, for example memory alignment for embedded programming and OOP with tagged types. It's as expressive as C++ for systems programming. That's what makes it way more complex than lnaguages like, say, Scheme R5RS, C, or Go. It's easier to learn than C++ but it's much harder to learn than a related language like Pascal or Modula, for instance.
> A lot of languages re-use keywords
Whataboutism? Languages that re-use keywords are generally a bit harder to learn than those with only few constructs and no keyword reuse. You don't think so?
I've never met any Ada programmer before who thought Ada does not have a relatively long and steep learning curve. You'd be the first I've met.
That's not true, the AdaCore libraries are covered by the Runtime Library Exception of GPL and available on GitHub: https://github.com/adacore
And soon available in the package manager: alire.ada.dev
> The purpose of this Exception is to allow compilation of non-GPL (including proprietary) programs to use, in this way, the header files and runtime libraries covered by this Exception.
Make that at least two, I think Ada's pretty easy to learn.
One thing that makes Ada easier is that if you get something wrong, it's usually a syntax error that's caught by the compiler. GNAT's error messages are very good and will often point you the right way. The whole language was designed to try to catch errors at compiler time. Obviously some errors will slip through anyway, but it helps.
Ada does have some features that you have to learn about before you can use them. That's true for any language. E.g., it has a task (thread) system built-in; if you want to use it, you'll need to learn it :-).
Yup. See https://www.reddit.com/r/ada/comments/ijwqfl/last_call_on_th...
> Ada has a runtime that you basically have to use and the most complete AdaCore version forces you to release executables under GPL.
See above.
> The FSF version is less complete (many libraries are missing)
Incorrect, AdaCore just packages their libs with their version of the compiler, with FSF, you have to build them yourself, which is a pain. But they are working on that.
> and allows you to use the much more permissive mGPL version.
MGPL hasn't been a thing for at least 10 years now. The FSF version if GPLv3 with linking exception.
> However, it always lags behind the version from AdaCore and many developers in the past were scared away by the licensing issues.
And the cost of licencing from AdaCore. Not small company / startup friendly, but apparently that has changed, but you still have to email them for prices!
> - Ada is a very complete language and not easy to learn. The syntax is special, in that it specifies each construct on its own and re-uses keywords.
This makes no sense, all languages are "complete" to some degree. The syntax is not special, it's like any other, it's defined by a grammar, as are all languages. A lot of languages re-use keywords.