After being led to the Ada Programming Language Wikipedia entry (and being impressed by what it offers and promises – it is designed for fail-safeness and robustness, and as such is used in satellites, military jets and orbital satellites), I wondered, why isn’t the language more popular, like the less effective and more error-prone C and C++ which are used for coding our operating systems, or Java/PHP/Ruby which power our interwebz?
A few forum posts exist about this, and numerous explanations abound, from petty whining (“everybody who tries it it hates it”) to accusatory (“it’s designed by a committee, and like Esperanto, nobody wants to use that”) through conspiracy theory (“it’s in the interests of repair & diagnostic/IDE vendors to make sure crappy languages persist”) and even via circular reasoning (“it’s not gained popularity because other languages are more in demand”). I kid you not.
In all of that, I only once noted one answer which hit a sensible mark: in a time when there wasn’t a prominent single language, due to the closedness of computer systems, hobbyists could only work with what was lying around, and there was no global applicability in any real sense [citation needed…], C came along and offered what nobody else was: a high-level language for low-level computing, a free compiler, and an operating system to use it on, in an ecosystem that promoted (at the time) code sharing. It was this seed traction that led to C being still the most popular language for system programming today.
Other languages have since risen, but the most popular, with the largest communities, still are application-level and web-oriented – not system level. In the midst of this, Ada still retains (bless or curse) its original image as the brainchild of the US Department of Defense’s brainchild, with little push to make it a business-systems or high-availability systems contender.
The onus then is on the existing Ada community to start building tools and libraries for newcomers to use. Newcomers like to feel invited in by pioneers.