Java is the New C

Fifteen years ago if you had to whip up some industrial strength tools from scratch there’s a good chance you’d have chosen C as your language. These days, there’s a much better chance you’d choose Java.

You can see this effect in the tooling for Flash and Apollo. Flash and Apollo are themselves both written in C++ and ActionScript. To create an ActionScript 3 application, however, you can’t avoid going through Java. Here are four examples:

  1. You’ll be writing some ActionScript 3 code. That’s compiled to bytecode using a compiler written in–Java.
  2. You might be using Flex. The Flex compilers (mxmlc and compc) are also Java wrappers around the underlying ActionScript 3 compiler. There are even Ant tasks for Flex on Adobe Labs.
  3. If you use the Flex Builder IDE, you’ll note it’s a Java application written on the Eclipse platform. (You even have the option of installing it as a plugin to an existing Eclipse install–some Apollo engineers run it this way.)
  4. If you’re creating an Apollo application then you need to package it in an AIR file for delivery. Packaging is done via “adt”, a little tool written in–yes, Java.

No doubt there’s more than one reason for this, and the simple fact that Java is now often the teaching language for first-year computer science courses may account for a lot of it. But I also think it’s got a lot to do with the fact that Java is a surprisingly good systems programming language–which is exactly what C was designed to be.

Java may not have thrived in its intended markets, but it has found a niche in a lot of developer’s toolboxes.