Ada is good because of useful typing (such as the ability to say "apples and oranges are both represented as signed 32 bit integers, the allowable range for apples is 0..5, and you can't mix them"), strong control over data representation, standardized extensions for on-the-metal programming and hard real time, built in synchronous message passing concurrency, and just generally being an awesome language. It's also good because of SPARK Ada, which is an ultra-safe Ada subset plus annotations and supports extensive static checking.
None of this require buying into marketing hype.
It's bad because the language is large and some parts feel out of date, the memory management is more complicated than it ought to be, and compilers are thin on the ground and often expensive. Targeting C at a new machine is much easier than Ada, and this is probably the main reason why it lost.
My personal guesses why Ada lost: In (Western) academia was a massive dislike of Ada because of its DoD roots and NATO applications, so they didn't use it for teaching. And hackers disliked it because it was a committee-designed language and it's pretty restrictive (even paternalistic) and directed toward mediocre programmers (a good decision for systems that run over decades and have big, changing teams assigned to it).
What was meant half-joking (that they should use Ada for the browser) becomes better the more I think about it. When I look at Rust's design goals, I find that Ada 2012 fulfills them (at least superficially). Additionally: if users have to learn Rust as a new language, then they can use Ada anyway (which has a good track record, while there's no experience with Rust's possible quirks).
And I guess if they ask AdaCore to include certain features as add-ons to their GNAT compiler, they'd do it or assist (because for fun and for the publicity that Firefox uses Ada).
In Europe maybe. In the US, hardly. We're talking early nineties, not the sixties. In the IT academia there were hardly any leftists that would oppose a language on the basis of it being used by the DoD.
I don't know why people think Ada is restrictive, it really isn't at all, at least, not since the Ada 95 revision (which added pointer-to-stack and pointer-to-function and OOP). It isn't even verbose, it's just communicative.
I think it comes from the following: Ada was designed to be robust against the average programmer. They prefer to "hack" around and have their program just compiling. Compared to, say, scripting languages Ada ist restrictive. I feel they dislike Haskell for the same reasons.
edit: most complains seem to come from strong typing and static type checking.
"apples and oranges are both represented as signed 32 bit integers, the allowable range for apples is 0..5, and you can't mix them"
While I can't say that I completely understand the underlying concepts, I believe that this is the sort of thing that Rust's typestate mechanism is intended to achieve (the way I seem to understand it, it's sort of like design-by-contract, except invariants may be checked at dozens of places per line rather than just at function boundaries). You should look into it if Ada's safety guarantees excite you.
None of this require buying into marketing hype.
It's bad because the language is large and some parts feel out of date, the memory management is more complicated than it ought to be, and compilers are thin on the ground and often expensive. Targeting C at a new machine is much easier than Ada, and this is probably the main reason why it lost.