Computerworld is undertaking a series of investigations into the most widely-used programming languages. Previously they have spoken to Alfred v. Aho of AWK fame, and Chet Ramey about his experience maintaining Bash. In this article, they chat with S. Tucker Taft, Chairman and CTO of SofCheck. Taft has been heavily involved in the Ada 1995 and 2005 revisions, and still works with the language today as both a designer and user. Computerworld spoke to Taft to learn more about the development and maintenance of Ada.
The case of ADA proves that, no matter how good is a product, its adoption depends on other factors, not its quality.
Ada, like PL/I has the distinction of having practically everything you could ever want in a language and a lot more. Somehow, I think that people assume bloated or too generalised (although Ada was rather targeted) and they automatically avoid such languages.
Of course, being tied to the U.S. Department of Defense originally, polarised people immediately.
I think the lack of a reasonable price compiler is the main reason that Ada failed to catch the audience on the late 80s and 90s. If there were a Turbo Pascal like Turbo Ada at that time, it would be at a much better position now.
We have GNAT from FSF and Ada Core now at least.
We were forced to learn this as part of a computer science degree course I took in the mid 90’s. HORRIBLE LANGUAGE! This was ADA 83. ADA 9x was promised, and finally arrived in ’95. To be honest, is was pretty much just as bad. The syntax for the OO stuff is absolutely horrible.
Hmm, you cannot know much about the language if you can’t even spell it! It’s Ada (a proper name, Not ADA an acronym, that’s the American Dental Association).
Ada is a great language for what it’s for. realtime embedded, safety, control systems… It’s just most “programmers” are not engineers so they hack their way through a program getting it to work marginally in the end. languages such as Ada force you to actually design an application ahead of time otherwise the strong typing will kill you! And most hackers hate having somthing tell then they arn’t allowed to do that! Must be an ego thing, I think.
Most hackers don’t like Ada because it does not assume the person writing the application knows what they are doing as do languages like C, C++… Even Java makes too many assumptions about the authors abilities.
There are two type of people that write code (Hackers and Engineers) The first hack it together usually making it work in the end, and those that engineer applications to work from the start!
My $0.02
Krreagan
in other words, teach everyone to write in ada from day one and see fewer bugs?
or will it be that people go from ada to c++, do not see errors all over the place and think that everything is ok, when there is some silent corruption going on?
Absolutely right.
Programmer ego is the real reason that Ada is unpopular.
Give up debugging ? Debugging is FUN !
The fact that C/C++ is still so widely used for application programming is the demonstration of this. Utter insanity.
Don’t bother replying `I don’t think so’ etc.—I’ve been watching this one for the ten years and see it just about every working day.
I’ll reply that I agree with you, but you shall understand that there are many kinds of applications.
The highly constrained style of ADA is really useful for safety critical embedded apps.
Its unlegitimate child hardware description language, VHDL, is quite popular as well.
The failure of ADA is that they expected to create the ultimate language, enforcing both correctness of the software and the development method (packaged libraries…).
The hard truth is that there is no universal langage, sometimes dynamic languages fit the bill (scripting, bahh!), sometimes you write unsafe code because you’re wanting as much performance as possible and access to the ugly details, without RANGE checking, someday you come across a bit of functional programming and feel ADA quite old fashioned.
Edited 2008-06-05 16:01 UTC
Allthough I think you have a point characterizing proigrammers (hackers vs. engineers), but I may add that those who you call hackers (“getting the thing working in the end”) are subject to politics (“You don’t get the time you need to design it properly – our customer wants it tomorrow, make it so!”) or irresponsible advisors (“The requirement I told you yesterday is obsoleted, I know better now: change this into that, add this, this and that, ah and change the format of these.”). Just to stay employed, many responsible and intelligent programmers do these “dirty” things and do what the customer wants – no matter if he’s a complete idiot or not. And don’t tell me – I’ve seen it all. ๐
The University of Magdeburg, Germany, has an “Ada Lovelace Building”, it was called “building Y” before and “building 29” today – what a loveless name. ๐
Picture here: http://omen.cs.uni-magdeburg.de/itikmd/fileadmin/template/main/gfkl…
The building contains a picture / portrait of Ada Lovelace inside.
To be honest, that’s what programmers usually learn. The time they spend coding is much less than the time they are required to invest first – for creating a concept, for planning what to do. There’s time to add, too, for testing, debugging, troubleshooting. The better your concept and implementation are, the less time you need afterwards. Ada’s language concepts force you to have an exact plan what to do before you start coding.
There are mixed forms, too, see my argumentation above.
These are my 0,02 Euro. =^_^=
Edited 2008-06-05 20:33 UTC
Had to learn Ada when going through the programming course while in the Marine Corps. Don’t miss it at all. People like to complain about Obj-C being overly verbose…
Being very strongly typed did make it a much “safer” language though. IMO, Object-Pascal (Delphi) is a much better choice if you are looking for that.
Not my experience, but someone else’s from a discussion I had at one point with a Boeing employee. For some reason they had a problem in ada95 which they ported over to c++. Likely on the Sun platform. He was talking about how some of the critical performance areas saw speedups factor of 10x.
At those levels its definitely the quality of compiler used. When was working on an Ada compiler a “sexy” thing to do?
A couple of years ago I profiled the GreenHills Ada95/C-C++ compiler. When you turn off run-time checking in Ada (esentually making it generate C/C++ like machine code) the performance difference was only ~3-4% (PPC 603e/vxWorks) overall and in some code the Ada was actually faster (Array manipulation). The benefit of Ada with RT checking off is that you still get all the compile-time checks that you don’t get with C/C++.
There are very good compilers on the market these days, they are not cheep (except for gnat).
The issue with Ada compilers is that the compiler must do a lot more work on the source then most other compilers so they are much more difficult to write. Once that is done however, certain aspects of optimizing become much easier due to the checking that is done during compiling that is then not needed during run-time.
It is well known that the earlier you catch a bug in the application the cheaper it is to fix.
By having a strong compiler/language, most semantic based bugs are eliminated at compile time. The strong typing helps with some logic bugs. These are things that Ada is very good at.
Krreagan