Java Has Me Outnumbered

I spent this afternoon working on several hundred mostly minor edits for the next printing of Sams Teach Yourself Java 2 in 21 Days, Fourth Edition.

There was one major change: The javac compiler defaults to support for new features such as generics, autoboxing, and the data structure-crawling for loop. The default was originally to turn these off unless the -source 1.5 command-line option was employed. It's no longer necessary, though you can use -source 1.4 to turn off the new features and -source 1.3 to ignore assertions.

Sun Microsystems has a lamentable habit of changing the name and version number of Java the morning after my books have gone to press. Over the years, the programming language and its free development kit have had these names:

  • Java 1.0; Java Development Kit (JDK) 1.0
  • Java 1.1; Java Development Kit (JDK) 1.1
  • Java 1.2; Java Development Kit (JDK) 1.2, which was renamed prior to full release as
  • Java 2 Standard Edition (J2SE) version 1.2; Software Development Kit (SDK) 1.2
  • Java 2 Standard Edition (J2SE) version 1.3; Software Development Kit (SDK) 1.3
  • Java 2 Standard Edition (J2SE) version 1.4; Software Development Kit (SDK) 1.4
  • Java 2 Standard Edition (J2SE) version 1.5; Software Development Kit (SDK) 1.5, renamed prior to release as
  • Java 2 Standard Edition (J2SE) version 5; Java Development Kit (JDK) 5.0

As of March 7, 2005, at 9:20 P.M. Eastern, the programming language so good it has two version numbers is called J2SE version 5 and the SDK is back to being called the JDK again. Internally, the JDK tools weren't updated to use the new number:

java -version

java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)
Java HotSpot(TM) Client VM (build 1.5.0-b64, mixed mode, sharing)

A story I've told in all of my Java books: In early 1995, former Sun product manager Kim Polese made the brilliant decision to choose the name Java simply because it sounded cool, declining more technical sounding monickers like WebRunner, WebDancer and DNA:

I gathered the team together in a room, wrote up on the whiteboard words like 'dynamic,' 'alive,' 'jolt,' 'impact,' 'revolutionary,' et cetera, and led the group in brainstorming. The name [Java] emerged during that session. Other names included DNA, Silk, Ruby, and WRL, for WebRunner Language -- yuck!

With all due respect to the creators of my favorite programming language, that appears to be the last good naming decision Sun ever made.


Well, they maybe can't name anything, but their API pages are brilliant. Everytime I have to look up some piece of C# in the MSDN I want a drink.

I thought Java was originally called Oak? That's what it says at:

Hmmm, I should read more carefully. ;)

I sort of wish it had kept the name Oak, maybe it wouldn't be the headache it is for me nowadays...

Heh - Ruby was a possible name?

I'm holding a copy of the Fourth Edition of the Java 2 in 21 Days in my hand and I've found an error. In Day 6 (page 146) in the Logger example at the bottom, it says:

public void setFormat(String format){
if((format.equals("common")) ! (format.equals("combined"))){
this.format = format;

It says after that the method is useful for setting the instance variable format to either "common" or "combined". I think that the exclamation point in the second line should have been an OR conditional (|).

Add a Comment

All comments are moderated before publication. These HTML tags are permitted: <p>, <b>, <i>, <a>, and <blockquote>. This site is protected by reCAPTCHA (for which the Google Privacy Policy and Terms of Service apply).