Since April 1st (no it’s not again a bad joke) the Java SE 6 Update Beta build is available. For all you don’t know what this is about (yes, you two in the corner), here are the major features:
- Enhanced Java deployment: Deployment Toolkit, Java Kernel online installer, Java auto-updater, and server side requirements are removed.
- Improved performance: Java Quick Starter and Hardware acceleration support
- Improved Look&Feel: Nimbus
- Next generation plugin-in: Applets are back and rock
I haven’t checked all of them yet, instead I concentrated on the things I am really interested: Rich Internet Applications (RIA). Adobe’s AIR and Microsoft’s Silverlight are without a doubt the major players in this field. However, Sun presented at last year’s JavaOne JavaFX and announced that Java’s VM will get an overhaul, so it can compete with the other technologies in the client area. I am still not 100% convinced about JavaFX (maybe the mobile aspect is the key), but I do like the idea that Java is used more on the client side.
Like I started Java programming, I always read Java performance; hence, Java sucks. Ok, the statement was true before Java 5, but since Java 5, especially since Java 6, performance is not an issue anymore. Except the startup of the VM and graphics. Both problems are addressed and should be solved by now. First, I checked the startup and the results is really good. Small Java programs are starting much much faster with the Java Quick Starter (JQS). Before you think, “Ok, another startup process that slows down my machine”, have a look at the following screenshot. The process takes less than 1MB and CPU usage is low as well.
What is the magic behind JQS? The explanation from Test Guidelines for JQS:
When JQS is fully enabled, there will be a new Windows Service running called “Java Quick Starter”. In TaskManager, the new JQS service is running as “jqs.exe”. JQS improves initial startup time for applets and applications by reducing the disk I/O required. This is achieved by periodically prefetching some of the most heavily used Java Runtime Environment files into memory (occupying no more than 20Mb of RAM). Later, when Java is launched, much less disk I/O is required which makes startup much snappier and noticeably faster.
It is all about reducing I/O! The downside of the JQS is that it is Windows only, but my hopes that the Open JDK project will take of a Linux/Mac JQS are high.
The next improvement is about graphics. First, Java now uses under Windows the DirectX 9 API and, secondly, a new Swing theme called Nimbus is available. I couldn’t test the hardware acceleration, but I had a look at Nimbus. Actually, I am following the development of Nimbus for month. My feelings towards the project are kinda torn. It is a must that Java gets a new and more modern standard Swing theme (look at the AIR default theme) because I think that cross platform themes are really important in a RIA context and the platform dependent Look&Feel of Swing is already good. Nimbus has a very modern and bold style. At the beginning I really liked the style, but now I am concerned with the acceptance of it. Screenshots from the theme can be found on Jasper Potts blog. The implementation still has several bugs (e.g. the JTree) and a beta implementation is expected at the JavaOne 2008.
My favorite improvement is the new Applet plug-in. Applets sucked, still suck, and will … rock. Yes, really! This is only a beta implementation; nevertheless, forget the freezing browser, the 30 sec startup time, and so forth. I tried several Applets with the new Firefox 3 beta (the new plug-in is only available for Firefox 3 and IE 7). The most impressive one was on Map24. The site offers an Applet to visualize routes, allows zooming, 3D, is fairly complex, and started in under 2 seconds! Yes, coldstart. Since, this is only a beta I expect further improvements in the future. The plug-in contains many many improvements. Have a look at the release notes for more information.
If you want to know more, download the beta and experience it yourself or listen to Chet Haase talking about Java 6 update n.
Oh, one thing I forgot. Sun please rethink the names of your version, why Java 6 update 10 (or n) and not just Java 6.1??
Update
A nice way to discover Nimbus is the SwingSet 3.

{ heli responded on 10 Apr 2008 at 3:04 am #
[...] So Java Applets have been training the last 1,5 years and they are some good results (more here). Another help comes from the cousin, JavaFX, who teaches Java Applets easy social interaction. [...]