Summary
Sun's latest JRE update focuses on ease of desktop deployment, and includes the Java Kernel, hardware acceleration, the Java Deployment Toolkit, and Java Quick Start.
Advertisement
Desktop deployment has been a sore spot for many Java developers, especially those building Swing-based applications. Sun's latest JRE 6 Update 10, a beta of which was made available this week, aims to remedy some of the deployment problems associated with previous JRE releases.
One of the thornier deployment issues for desktop Java stems from the need to determine just what versions of the JVM a client has available, and whether that JVM version matches the requirements of a client-side application. Java WebStart has provided some rudimentary support for this, but most of that relied on crufty JavaScript that didn't work equally well on all browsers and browser versions.
Update 10 addresses this issue from a fresh angle. Instead of developers having to write custom JavaScript to detect available JRE versions, Update 10 provides a client-side JavaScript library, the Java Deployment Toolkit. With methods such as getJREs() or installJRE(), the Deployment Toolkit aims to take the guesswork out of proper JavaScript syntax for specific browsers, and streamlines the installment or update process for a desired JRE.
An equally problematic area has been the sheer size of Sun's JRE: While JavaScript applications don't require any special runtime, and Flex applications can install and update a Flash VM in a few seconds, users of client-side Java applications have been forced to wait out the download and install of tens of megabytes of code.
Update 10 address the download size problem with the Java Kernel, a modular packaging of Sun's JRE. Realizing that most desktop Java applications rely on small subset of JRE capabilities, Java Kernel enables a modular, piecemeal download of the JRE. The initial kernel, just enough to launch a JVM, can load in a few seconds, and additional VM capabilities are dispatched from the network on an as-needed basis, or in the background.
Java Kernel works in tandem with Java Quick Starter, another new technology in Update 10 that aims to solve the slow startup of Java applications. Instead of loading the entire JRE, along with its large class library, into memory, Java Quick Start allows for a small JRE at startup, and prefetches additional portions of the JRE following the initial startup.
Do you think that Sun's efforts at easing deployment of the JRE are sufficient to make client-side Java a practical alternative for enterprise application UIs?