In its etymological meaning, a paradox is a fact or statement which is true, but goes against common sense. Ada as a whole is a huge paradox: a language that was designed as a piece of engineering, with the most powerful features, after carefully studied requirements, should have replaced all other languages; however this did not happen.
I was involved with Ada ever since the language got its final name – back in 1979. When looking back at the history of the language, it appears that Ada is a subject of not one, but many paradoxes. Undoubtedly, Ada is technically sound, feature-rich, and appropriate for a vast number of applications, so how comes that it did not gain more popularity? Most people view Ada as a real-time, high-reliability language for safety critical applications, but. is it really the kind of application domain that benefits the most from its strengths? Ada was designed to enforce programming methodologies; was it a good idea?
In this talk, I'll address these kinds of questions: review the features of Ada, discuss the initial goals in the light of today's needs and today's practices, and draw some lessons that may well seem… paradoxical.