Java SE 6
Java 5.0 - The "Tiger" Is Out of Its Cage
Java 5.0 - The "Tiger" Is Out of Its Cage
Sep. 30, 2004 12:00 AM
These days Calvin Austin is one of the busiest people in the Java world: J2SE 5.0, that was also known as the "Tiger" project, is being officially released today!
Yakov Fain was able to catch Calvin right before the plane from San Francisco to New York where he'll be presenting the new features of the Java language to the New York Java Users Group.
JDJ: Please tell us about yourself and your role in the Tiger project
Calvin Austin: I'm the J2SE 5.0 Specification Lead, JSR 176 in the Java Community Process. The J2SE 5.0 expert group consists of 18 members including all the major industry partners and JVM porters.
JDJ: What are the main new features of the language being introduced in J2SE 5.0?
Austin: Four main themes ran through the release.
- Ease of Development. These are the first significant updates to the Java language since 1.0 was released. The main ease of development features are generics, metadata, enhanced for Loop, enums, and autoboxing.
- Monitoring and Manageability Monitoring a JVM using JMX and SNMP protocols, enhanced diagnostics, a low memory detector.
- Performance and scalability. Faster startup time using class data sharing and automatically tuned server configurations, something we call "performance ergonomics."
- Desktop Client. A refreshed new cross-platform look-and-feel called Ocean. OpenGL hardware acceleration for intensive graphics apps.
JDJ: You probably have received lots of different suggestions from the developers community about the "missing" features of the Java language. How did you make a decision?
Austin: Generics received the popular vote, it was one of the top 20 "Requests For Enhancements" (RFE) on the Java developer connection site. All 20 RFEs were added as potential features. For the other language features the final decision was made in the respective JSRs, like JSR 201 and JSR 14. Sun was the spec lead for both those JSRs and so also involved James Gosling and others in the initial reviews.
JDJ: Large corporations usually switch to newer version of any programming language with substantial delays. What do you think is a major selling point of the new version Java?
Austin: One of the major selling points of this release is that you'll be able to slot in a 5.0 JRE to your application and benefit from the improved performance, monitoring, diagnostic tools, and reliability without changing a line of code. However there are also benefits in also recompiling and updating your source code. Using Generics, the compiler can alert you to runtime class cast exceptions, the concurrency API gives you the flexibility to re-write code to have improved thread safety.
JDJ: Did you run into any compatibility issues between Java 1.4 and Java 5.0?
Austin: Running applications should be fine. The one thing developers need to watch for is that enum is now a keyword as the javac compiler language is 5.0 by default. This applies to the assert keyword that was added in 1.4
JDJ: Are there any performance improvements in the new version?
Austin: Startup time is improved even though Tiger is a bigger release, server side benchmarks with performance ergonomics are greatly improved on machines with two or more CPUs.
JDJ: What are the benefits for fat client Java applications?
Austin: Improved startup time, skinnable API (synth), reduced jar file sizes for downloading when using the pack API.
JDJ: Let's forget about the corporate world for a minute. What do you think is the coolest new feature of the language?
Austin: If I just restrict myself to the language it would be metadata (JSR 175). We've only scratched the surface of its potential. For the platform, it's a bytecode insertion for profiling (JSR 163).
JDJ: In some cases new features of a programming language not only improve the language, but also may change the style of programming in general. If you were a college professor or a Java trainer, would you teach your students using some new concepts of programming rather then building your training materials on top of existing ones?
Austin: I haven't seen a recent course so it's difficult for me to comment. One example I can think of. For threading and synchronization, I would definitely recommend still spending a little time covering the basic Java monitors/synchronized blocks but dedicate more time to the concurrency API instead (JSR 166). It should reduce the number of threading errors introduced.
JDJ: The Tiger is out. What will the future releases of Java bring us?
Austin: It is really is down to the Java community at this point to help define the release, I had no shortage of feature requests for 5.0 so most of the work was cutting that list to a manageable size (105 features). When the 6.0 JSR is submitted, users and developers can send comments and questions to the comment alias there.
JDJ: Calvin, thank you for taking the time and answering our questions! JDJ would love to ask more, but I've got to run - it's time to download J2SE 5.0 !!