Prime Mover of Java's Port to Linux Interviewed
jg21 writes "After Java 5, what will become of Calvin Austin now that he's lead engineer - and spec lead - in charge of J2SE on Linux? This interview shows him to be Sun's most personable developer asset after James Gosling. (Gosling BTW, who famously uses Mac OS rather than a PC, has a Linux box and uses the X support on OS X to run Java 5.) Asked what feature in the new Java edition he considered coolest of all, Austin without hesitation replied "Metadata" - the spec lead for that particular feature, Austin's former colleague at Sun Joshua Bloch, was headhunted recently by Google. Now Java, Linux, and Google would be quite a combo. Maybe that's what's fueling all the recent speculation that a Google browser would probably be a browser, feed reader, blog tool, desktop search, online search, gmail, news reader, photo editing, and online photo publishing all rolled into one."
Firefox completely borked the formatting of the interview.
Here is is, in case any of you actually read.
Yakov Fain writes: I 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 this week.
YF: 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.
YF: What are the main new features of the language being introduced in J2SE 5.0?
Austin: Four main themes ran through the release.
1. 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.
2. Monitoring and Manageability Monitoring a JVM using JMX and SNMP protocols, enhanced diagnostics, a low memory detector.
3. Performance and scalability. Faster startup time using class data sharing and automatically tuned server configurations, something we call "performance ergonomics."
4. Desktop Client. A refreshed new cross-platform look-and-feel called Ocean. OpenGL hardware acceleration for intensive graphics apps.
YF: 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.
YF: 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.
YF: 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
YF: 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.
YF: 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.
YF: 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).
YF: 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 programmi
Please, please, please, please make the amd64 JVM work on Intel EM64T boxes in Linux!
SUN claim support on AMD64 in Linux as noted on their website.
Right, they support amd64 machines but not Intel EM64T machines. Intel implemented all of the x86_64 specifications except for two instructions (prefetch and prefetchnw, IIRC). Those two instructions are 3DNow! specific, and not supported on Intel. If you try to call them (which Sun's amd64 binaries do), you immediately crash with a SIGILL (illegal instruction).
Sun used type erasure to implement generics without changing the JVM. Hopefully a new compiler/JVM at some point will provide support without type erasure.
BTW, have a look at java.util.Queue, and its implementing classes. Sun finally got around to providing a queue.