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 "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.