Josh Fruhlinger
Contributing Writer

Who says Java can’t fly?

how-to
Aug 5, 20082 mins

You might recall in an earlier post that I discussed the anti-Java professor, who felt that Java programming jobs are easy to outsource. One of his examples of why Java was not a language with a high-paying future was that it’s not used in mission-critical applications like aircraft control systems. This led to an intriguing rebuttal from an actual aerospace engineer, who dismisses that as kids-these-days-ism:

I’ve been around long enough to remember when C was the latest hazard to our aircrafts’ software. … That awful, poorly structured, type-unsafe language C was the end of the world to some. You didn’t find it in aircraft, 25 years ago. It had all these library functions–how could the programmer know what lurked inside them? How could you validate code written on top of them? Well, it’s been managed. There are compilers and libraries for C that are validated and well documented. Now there’s C code flying.

Does that make C a better language? No. There are plenty of other uses for C, from writing entertainment software to system code, that don’t require the same level of code validation as an aircraft’s instrumentation, communication, and control systems. C came to aircraft because it was an effective language to code in and for writing maintainable code, and because there was a huge base of labor to draw on.

Java has those advantages, too. Maybe it’s time to get a JVM validated for use with safety-critical code? That’s all it would take to get Java in the air. In fact, it would seem to me that a validated runtime environment like a JVM with the appropriate low level reliability features could be a safer software environment than one based on C, or even ADA.

The whole thing is more than worth a read.