Out in the cold?

Op-Ed: Java is still struggling on post-PC devices

Elliot Bentley

The latest version of ADF Mobile allows Java to be run as part of native iOS apps, but it’s an ugly hack, not a robust solution.

The latest release of ADF Mobile comes with the intriguing ability to embed JVMs inside of cross-platform native mobile apps (including iOS), utilising PhoneGap to serve up Java-powered embedded web pages. It can even access native device services such as the camera, contacts and notifications. Could Oracle have somehow snuck Java onto Apple’s notoriously closed ecosystem?

In a market increasingly composed of post-PC devices, Java is struggling to match the success it found on traditional desktops. An iPhone JVM was proposed as early as 2008, before developers realised that app store reviewers had a very low tolerance for apps coded in anything but Objective-C (although this policy has been relaxed somewhat since).

Meanwhile on Android, Google’s attempts to sidestep Sun/Oracle’s licensing restrictions by using Java syntax without running actual Java have led to endless lawsuits, and even the upcoming Windows 8 will not run Java apps in the new ‘Metro’ environment.

In this bleak context, bringing “cross platform Java dev to mobile devices” sounds too good to be true. A post on the ADF Mobile blog (thankfully absent from typical PR-speak) outlines the architecture:

ADF Mobile is a “hybrid” architecture that employs a natively built “container” on each platform that hosts a number of browser windows that are used to display the application content. We add the Java VM as a natively built library to the container for business logic.

As you may have gathered, this isn’t exactly WORA finally reaching the app stores. On iOS, ADF-produced apps will likely be subject to even worse performance than regular web apps running Mobile Safari (as WebView containers are not allowed to use the Nitro JavaScript engine), let alone the speeds of native code. With the overhead of running an entire JVM on top of this, it’s difficult to imagine any ADF Mobile apps being described as anything other than “sluggish”.

Perhaps to developers of internal enterprise apps, serving up boring, static lists and dialogues, this might be acceptable, but as Oracle VP of product management Bill Pataky admits, games even as basic as Angry Birds are impossible under these circumstances.

The truth is that these platform manufacturers don’t want runtimes outside of their control on their new systems. This is an era of increasingly closed platforms, whether developers like it or not, and Java will remain a second-class citizen – only able to run via ugly hacks like this embedding of JVMs.

Unless something radical happens, Java will continue to disappear from the client-side, banished forever to run on servers instead; after all, even the traditional desktop is abandoning it, in part thanks to endless security gaffes. Perhaps ADF Mobile will suddenly bring new relevancy to Java on post-PC devices, but we wouldn’t count on it.

Inline Feedbacks
View all comments