Intel and Sun add X factor to mobile Java
Back to roots
There was a time when Java was seen by many as too slow for desktop applications, let alone mobile devices, writes Rob Bamforth, of Bloor Research.
Over the years two things have happened to greatly improve performance. The general implementation of Java has evolved and matured. Secondly, widespread adoption has led to unexpected collaborations. This is especially true where the caffeine hits the silicon, with Java optimised for hardware.
However the most recent collaboration is as surprising as it is important. Intel and Sun, who are direct competitors in several areas, have jointly announced a collaborative effort to optimise Java for the Intel XScale silicon technology. XScale technology is designed for low milliWatt to MIPS ratios to give longer battery life for good compute performance for mobile devices.
XScale processors include the PXA255 and PXA26x plus the recently introduced PXA800F cellular processor. Devices based on XScale technology include Palm Tungsten C, Fujitsu Siemens Pocket LOOX, HP iPAQ 5400, Motorola A760, Dell Axim X5, Toshiba e550 series and several of the Sony CLIEs.
Sun and Intel are optimising the Hotspot virtual machine (VM) for Sun's Java definition aimed at mobile devices known as the Connected Limited Device Configuration (CLDC). This is one of the two configurations of lighter weight specification of Java for smaller devices, Java 2 Platform, Micro Edition (J2ME). The Hotspot VM is designed to try to get the best software performance for Java by a number of optimisation techniques aimed at the key areas (hot spots) of code which will affect performance the most.
The first output from this joint work should be delivered to OEMs in the next three months, and devices incorporating the optimised Java by the end of the year. Both Sun and Intel expect further collaborative developments in the future.
As an elegant object oriented programming language Java attracted developer interest, but Java's promise of "write once, run anywhere" was never quite true. Java created a standardised abstraction layer across a wide variety of otherwise very specialised platforms. This has allowed expertise, skills and some significant pieces of software development to be moved and reused in a platform independent manner. The price paid for abstraction was efficiency and ultimately performance. Especially on less powerful platforms.
This collaboration is significant because of Intel's recognition of Java as a popular and widespread software platform for real applications that demand the best performance out of the underlying hardware. It's good news for the developers of mobile Java applications, as it will give them more options for innovation in performance hungry multimedia applications.
The Java platform was originally developed for a prototype wireless handheld multimedia consumer device, the "*7", well before it achieved fame through applets in the web browser and enterprise server environments. With the levels of performance soon to become available, it's heading back to its roots.