In all the excitement of the conferences I've been to in the last couple of months, I've also been helping Aonix with their proposed Ada project at Eclipse, called ADT (of course). Ada, you say!?!?! Yes, Ada. Despite reports to the contrary, Ada is still being used in the industry, especially in the military and aerospace and especially in safety critical systems. And with the introduction of Ada 2005, the hope is to spread all that Ada goodness to the rest of the embedded industry.
So, why Ada? Funny enough, googling "Why Ada" returns a number of articles on that subject. This is something the Ada community has struggled with for quite a while. But from my point of view, it all comes down to writing safe code. Ada is a huge language and much of it has to do with making as hard as possible to write bad code. Code like "while (i++) *i = 42;" isn't possible. This is particularly of importance with embedded systems where flaws like this could be costly, very costly.
But Ada has also suffered from the stigma of bureaucracy. The fact that it was designed by committee for the U.S. Department of Defense (who has since dropped it as a requirement) doesn't help. Also the reference manual reads like a legal document, and there are few books out there to explain it to us regular Joe's.
From my perspective, though, I think the biggest problem with Ada has been the lack of an open source community around it. GNAT, the GNU Ada compiler has been around a while, but it isn't very straighforward to use with it's own build system. But gdb works fine with it for debug.
So, in the past, I've tried to drum up interest in Ada as an extension of the CDT at Eclipse. Aonix and AdaCore are two vendors that have done it commercially. I was thrilled when Aonix approached me about starting up such a project. And I really hope that other Ada tool vendors join in on the fun.
High quality open source solutions available to everyone really helps with growth at the grassroots level. Many universities and colleges are using the CDT for their coursework because it is freely available. The same could happen with the Eclipse ADT. But to ensure high quality, a community has to form around it to share in the work. Most Eclipse projects benefit from the spirit of "co-opetition", competitors working together for the common good of the market. This could grow the Ada market which would mean they could sell more professional tools and support. Such is the economic wheel that keeps Eclipse going and we'll see if the Ada market can do the same.
The last http://www.facebook.com dream which I shall tell from those occurring in the course of treatment again shows this very thing...
ReplyDeleteDoug said "But Ada has also suffered from the stigma of bureaucracy. The fact that it was designed by committee for the U.S. Department of Defense ...".
ReplyDeleteThis is a common misunderstanding, so perhaps some history from someone who was around at the time is of interest. In fact Ada was designed by a team, with a strong leader, Jean Ichbiah. I think all sports fans know the difference between a team with a strong captain and a committee! Yes, there was an oversight committee, called the Distinguished Reviewers, who gave input, but we were strictly operating in advisory mode, and Jean's team had the last say on all design issues.
There may be things you don't like in Ada, but you can't blame them on "design by committee". A similar setup was followed for Ada 95, with Tucker Taft as the team captain.
Robert Dewar
AdaCore
Doug said "Also the reference manual reads like a legal document, and there are few books out there to explain it to us regular Joe's."
ReplyDeleteCertainly the reference manual *is* a legal document (it is the formal ISO and ANSI standard for the language). Only language experts could expect to learn a language from the standard.
Nevertheless it is worth noting that Ada is the first language since Algol-60, where every day programmers rely on the reference manual as a reference work.
Try asking a room full of C (or C++, or Fortran or COBOL or ...) programmers whether they have ever seen the ISO or ANSI standard for the language, let alone use it as a standard reference. You won't get many hands up. And if course if you ask that in a roomful of Java programmers, you won't get any hands up, since there is no ISO standard for Java.
But if you do the same thing in a roomful of Ada programmers, you will find most Ada programmers have a copy of the RM and use it as a reference source. This was one of Jean Ichbiah's design goals, and the RM has been remarkably successful in this respect.
As for books for learning the language, it is certainly true that they lack in quantity compared to more popular languages, but not in quality -- there are some very good Ada books out there -- the books by John Barnes and John McCormick are excellent examples.
Robert Dewar
AdaCore