Rename Java

Java should be renamed when Java 8 is finalized.

It should be renamed with every major release.

Java has an undeservedly bad reputation among hipster developers. It's undeserved but I know where it comes from: a long legacy and an admittedly miserable history of wickedly over-engineered design spasms known as "enterprise software."

But those who avoided the enterprise taint of Java—those of us who always clicked Java SE instead of Java EE when downloading a JDK from Sun—see Java as something quite different. Yes, the language has evolved slowly, but it's not encumbered by the volume of cruft outsiders think.

Part of the reason Java fares poorly in the public opinion is that the Internet grew up with Java and is still littered with thousands if not millions of articles about Java that are better suited to a computer history museum or a classic computing forum.

An outsider looking for modern best practices for Java has a hard time because of this abysmal signal to noise ratio.

Say you're designing an application that requires a 10 gigabyte virtual machine and want to know how to tune the memory configuration. So you ask the Googletron about Java large virtual machine memory settings. Try it.

The Googlematic comes back with (I am not making this up!) an article from 1999 suggesting that you try these command line parameters:

java -Xms32m -Xmx128m MyClassName

128m! That's like one hundred and thirty four million bytes. It's certainly more bytes than I can count. That's large.

And I don't even know what some of the other results are. Looks like some IBM WebSphere configuration, JVM tuning for Caucho Resin 3.0, Netbeans tuning for 32MB VMs, and something called Gemstone that suggests a 1 gigabyte VM. One whole gigabyte! Whoa now.

Things do improve marginally if you clarify the query with the phrase "Java 7" (but be sure to put it into quotes).

Java versions should be named

The following software systems are doing versioning right.

Mac OS X:

  • Cheetah
  • Puma
  • Jaguar
  • ... Mountain Lion

Android:

  • Cupcake
  • Donut
  • Eclair
  • ... Jelly Bean

Ubuntu:

  • Warty Warthog
  • Hoary Hedgehog
  • Breezy Badger
  • ... Raring Ringtail

The Ubuntu names are especially clever. They are essentially passphrases for the versions. If you search for troubleshooting nVidia drivers on Raring Ringtail, the results are absolutely on target. You don't even need to include the word "Ubuntu."

Applying the same to Java would quickly help cut the crufty feeling for outsiders.

One last plea

Oh, and if I get my wish and Java were to adopt version names, I have another final plea.

Please, for the love of Gosling, don't make the names have anything to do with coffee. I am so, so very, so completely, so over the coffee puns.
About this blog