Desktop Java applications on smartbooks: what to expect?
Smartbooks are an upcoming line of affordable, mobile computing devices. Their use case scenarios fit in well with currently popular Java desktop applications (e.g.: Azureus/Vuze bittorrent client, RSSOwl feed aggregator…etc) and there are still a lot of websites using Java applets or webstartable Java applications for auxiliary functions (like mass upload of files). Moreover, many company intranets contain desktop Java based technologies (e.g. fast data entry forms, GIS mapping clients…etc). Due to this, affordable, Java capable devices may spur wider adoption of mobile computing within companies. Finally, the new JavaFX rich internet application framework (an Adobe Flash competitor) seems to be heavily supported by Oracle, so we can expect advancements on JavaFX deployments on public and intranet websites. JavaFX has similar Java requirements as Java applets.
For these reasons, it is interesting how smartbooks can be expected to work with desktop Java software.
Since the upcoming smartbooks are mostly based on ARM, we need to analyse how Java is supported on the latest ARM system-on-chip (SOC) processors.
Originally, ARM created dedicated Java support in their processors through its Jazelle technology. This provided hardware acceleration in a CLDC profile environment (Java edition for smartphones and other embedded applications). Jazelle provides better startup times until the Hotspot compiler can compile Java bytecode to native ARM code. If the device is memory constrained, it is possible to use Jazelle alone, without the Hotspot compiler. Some details about this can be found here.
In a smartbook environment CLDC is not enough, the full Java Standard Edition is expected in order to make the computer be able to run complex desktop programs like Azureus.
A number of upcoming smartbooks are based on the Qualcomm Snapdragon platform (which is roughly an ARM Cortex A8 level processor). A recent development (June 2009) that Java standard edition has been ported and optimized for the Snapdragon platform (details here). It is unknown if the Snapdragon uses Jazelle and the optimizations include Jazelle but it is likely since other Qualcomm ARM processors include this technology. This is encouraging from the Java perspective (the article mentions 32x improvement in application performance) but the Snapdragon and Cortex A8 processors may be generally not fast enough for complex applications.
The more powerful smartbooks will be based on dual core Cortex A9 processors (like the nVidia Tegra 2). These are generally assumed to be comparable to latest Atoms in performance. For this processor type, Sun has recently demonstrated their optimized Java 6 Standard Edition environment (2009 Oct, details are here). Cortex A9 processors include Jazelle by default and it is likely that SOC manufacturers will also include them in their end products.
Conclusion: With proper customizations by the device manufacturer, Java applications may perform better on Cortex A8/A9 based ARM systems than on comparable Atom chips because of the inherent Jazelle hardware support and the ARM specific optimizations done by Sun. The safe bet – from the Java perspective – would be on dual core Cortex A9 based systems since these will certainly have the necessary processing power for desktop applications.
The success of smartbooks remains to be seen but it is safe to say that Java will have good support on these systems and customers of such machines may expect reasonable performance from their Java applications.