Ada is a fine language. For those of us that did the Turbo Pascal thing and enjoyed that Ada isn't that far off. There was this odd sort of period in my life, I learned Pascal and took classes that used it and wrote fairly complicated programs that by in large worked. Most of the debugging I did was really logic debugging. Then I switched to C and between the esoterics of doing C on a DOS x86 machine (anyone remember the difference between ASCII files and binary files?) and the language itself I started spending a lot more time debugging C and I put a lot more effort in to making programs radically more simple just to avoid complex debugging. At times I kind of pine for those old Pascal days... Had I not experienced that era, I might have gone in a different direction entirely.

Through out the 90's I tought C++ to undergrads for a couple years and there was this disease of sorts, some went though so much pain trying to make C++ do simple things (and they had no understanding of what the machine was really doing, they were trying to just learn a language) that they either a) would drop out of computer science all together or b) they'd have such a better taste in their mouth that they'd never fully learn Lisp or ML or really anything else and always revert back to C++. Ada is quite similar to Pascal in syntax and sort of behaves the same way. FWIW, Ada is kind of interesting, if you've ever wasted a lot of time tracking down where you C program bumped the stack or leaked memory or something then the things Ada requires of you are kind of nice in a way.

Seems Ada missed the timing on a number of issues. First Ada compilers were built to be sold to the feds, they essentially designed the language and they mandated its use and so compiler writers assumed that they could charge $20,000 a seat type prices. Completely missed the market, largely due to costs. This put a very serious damper on things.

The other thing that they missed on was tooling. When Java first came on to the scene there was a vocal group of folks that were used to teletypes and modems and such and the difference between "{" and "}" and "BEGIN" and "END" was substantial to them. If they have a Visual Studio or Eclipse like programming environment, those differences kind of vanish but that argument took place in the early and mid 1990s, there are still people that feel that their coding ability is strongly related to their typing ability.

By the time tooling caught up and the GNAT compiler was around Ada had accumulated a huge perception deficit. Also the world has moved on and a lot of developers want protected runtimes, like a JVM or CLR or the interpreter of Ruby, Perl and Python. There are still efforts to create higher level C competitors, the D programming language, the Eiffel programming language, Modula-3 as one, it just seems that not that many people are interested.

I like to look at Rails and I think a big part of its success has nothing to do with any technology so much as the effort they put in to teaching their users a good and working structure to build web apps, they will automatically generate the skeleton and you fill it in; by the time you've done a real world production Rails app, you've done everything yourself and don't even realize it because they got you started. Ada and Pascal sort of provided that structure to building machine code applications, people really rebel against that structure unless you sort of trick them into it like Rails does.