Thursday, October 27, 2011

In defense of Ada in Defense.

I read an interesting article about the F-22 Raptor fighter on Wired today, and it lead me to check out the Wikipedia page for it and I ran across a startling statement. The bill for upgrading America's fleet of 185 aircrafts' hardware and software has doubled from the original $8 billion to $16 billion. According to a defense analyst, the primary cause for this increase is the use of the Ada programming language for the system software.


What?



Read it here.

Now I don't know anything whatsoever about the F22 program or it's software. And it is certainly plausible that there are software issues that can cause extreme cost overruns, especially on  a mission critical system such as a warfighter. That it is chalked up to Ada itself really seems like a cop out. (Did I mention that I know nothing about the specifics of this, so I *could* be wrong here?) I have some experience wih existing Ada code bases in military applications, and I can tell you, it was some of the most well written code I've ever seen. Ada done correctly is an asset, rather than a liability. Ada's primary explicit design goal was robustness and reliability. Sure, writing Ada leaves a funny aftertaste, with it's lack of curly brackets (what were they thinking?).

This crazy assertion really does lack specifics, so I imagine there is a lot more to it. Maybe they have a hard time finding developers. Finding those who know Ada and can get the clearance to work on such system might mean that developers are paid a premium. Maybe the codebase is not "done right". A bad code base is a bad code base (But then I ask is Ada the culprit?). Maybe they can no longer find an Ada vendor to work with. Maybe they're having  hard time interfacing with external components in other technologies... Then again though I have experience interfacing Ada and C++ and doing serial comms with a protocol defined on one side in C++ and the other in Ada. It's not a cakewalk, but it's not $8 billion either.

So I don't really use Ada in my personal projects because I'm a curly bracket snob (even though I seem to prefer the Ada-inspired VHDL to Verilog). I did play around a little bit in AVR-Ada, but never went anywhere with it. I do find myself wishing there were an Ada-like language with C++/C#/Java like syntax. (see Cowbell)

--P

No comments:

Post a Comment

I welcome you're thoughts. Keep it classy, think of the children.