Leveraging the thousands of Java ME apps on the market and run those on tablets... (RIM PLaybook, WebOS)

hwadechandler-openjdk at yahoo.com hwadechandler-openjdk at yahoo.com
Thu Feb 17 15:04:09 UTC 2011

I don't know the answer Fernando, but I have been wondering this for years. Sun, 
and now Oracle, are way behind the ball on mobile Java, and I've never been 
given any answers as to why when I have asked the folks I know. Really I think 
it just comes down to a losing model being chosen where it was left up to 
vendors and carriers to implement the pieces of the specification versus 
something like what I'm fixing to talk about.

Google goes the complete full circle with the OS and all, but for just 
supporting Java, Oracle wouldn't have had to have done that.

On some systems, you probably can't get a JVM on them. But, what could happen is 
to precompile the application to a native version for a targeted platform. 
Different look and feels etc and capabilities could exist which one could 
include in their final output; well on the look and feel I envision this just 
using the native libraries and essentially exist a translation layer of some 
sort. Would need preprocessors etc too.

Write once run anywhere is a good idea in principal, but in reality that isn't 
going to always be possible. Where it is, and where it makes good business 
sense, then it is good to have, but based on what has won and what hasn't it 
seems that model wasn't a winner. It is much more likely for a solution similar 
to what xmlvm is doing to be done and work quite well in my estimation. The 
major pluses are resource and library gain. We as developers don't have to have 
resources for every specific mobile device and too we can reuse existing and new 
libraries across platforms, but of course we have to target and test those 
platforms (and if an open community we could fix the issues in the platforms 
where it is an issue with the environment).

Something along these lines based on openjdk and phone me would be good in my 
opinion; moving from simpler to more complex for different devices and 
categories of course. If Oracle won't or isn't going to focus on such an effort 
it would be nice to get such a thing going here, but resources and time are a 
big BIG thing which don't come easy or cheap, so it is easy to criticize. 
Certainly the GNU "with linking and classpath exceptions" would be a big deal 
because of this, and this certainly makes building such a thing on openjdk 
attractive for all who might be involved.

For the final output, I envision common libraries being generated on systems 
which support that, and others, where there can only be a single executable 
linked in, then everything required being statically linked into that file. This 
is where not having the JVM itself and everything needed to support that is very 
important. Have to keep things as small as possible.

Outside of mobile devices, a system similar to that described above, would be 
good for desktops too. First, there are larger applications where it makes sense 
to have an installer etc, and embedding a JVM and all the capabilities makes a 
lot of sense. Say some system which is able to support plugins and can grow with 
the user and their needs. Or, just the fact you need an installer means it is 
more feasible than apps which don't need an installer. 

For utility applications or things like gotomypc which need a simple bootstrap 
launcher to grab and download the other needed requirements or are just a simple 
shell for remoting all that top heavy stuff doesn't make any sense at all. This 
is where such things make a lot of sense for desktops. Even when thinking about 
Perl, Python, etc, the same issue exists of a top heavy runtime with all this 
functionality globbed into it. 

Basically if the JVM and native libraries etc were broken down into finer and 
finer grained sub-systems of linked libraries with statically linkable counter 
parts, that would fix a lot of that I imagine; off the top of the head kinds of 
thoughts. Too, precompiling the Java logic to a final output would be needed. I 
don't think a final output supporting byte code would be able to be small 
enough; VM would naturally take up a lot of space. I'm sure there is an 
extremely large amount of work for such a feat though.


Wade Chandler
Software Engineer and Developer
NetBeans Dream Team Member and Contributor


----- Original Message ----
> From: fernando cassia <fcassia at gmail.com>
> To: discuss at openjdk.java.net
> Sent: Wed, February 16, 2011 11:53:15 PM
> Subject: Leveraging the thousands of Java ME apps on the market and run those 
>on tablets... (RIM PLaybook, WebOS)
> Hi there,
> I´m a long-time Java SE advocate on the desktop (both Windows  and Linux).  I 
>also used to be a Palm OS fan on the mobile side, and have  been running Java 
>mobile apps (J2ME) on my ancient PalmOS mobile for years,  software which wasn´t 
>even designed to run on the PalmOS, all thanks to the IBM  J9 Java VM for Palm 
> Having said that, I´ve been looking at the tablet  marketplace with interest, 
>but haven´t found any that I find outstanding from  the point of view of OS 
>openness. Ideally, a tablet to be attractive for me  would have to:
> 1. Allow porting Linux apps to it (if not run Linux  natively). I guess I´ll 
>have to wait for a MeeGo based tablet?.
> 2. Have some  form of Java VM available (wheter Oracle licensed or full OpenJDK 
>or PhoneME  ported and running within it).
> With the thousands of Java ME apps already  available on the market, it boggles 
>the mind as to why no tablet OS developer is  taking advantage of this and 
>offering the possibility to run Java ME midlets as  "widgets" on the larger 
>tablet OS screen. Or why isn´t Oracle pushing the Java  VM to tablet devices.
> If Windows Vista and 7 have desktop widgets, why  can´t be Java ME apps run as 
>widgets on a tablet OS ?!?...
> So.... I was  partly attracted to RIM´s Playbook as it mentioned "future" Java  
>compatibility.... possibly to run Blackberry mobile apps designed for the   RIM 
>phones Java ME....  but nothing has been delivered so far AFAIK on SDKs  etc.
> HP´s WebOS tablets won´t likely include a built-in Java VM and it´s  unclear 
>how easy it would be to develop one.
> So, this is the main  question:
> How difficult would it be to port PhoneME and OpenJDK to the  Playbook´s QNX OS 
> What about HP´s WebOS?.
> I guess the  "community" can take care of running OpenJDK and PhoneME (open 
>source J2ME) on  MeeGo as it´s the most open of all the previously mentioned  
> FC
> PS: If I were Oracle, I´d port PhoneME and OpenJDK to  both WebOS and RIM´s QNX 
>Playbook OS, then do a major relaunch of the Sun "Java  App Store", featuring 
>Ellison showing sample .JAR /.JAD J2ME apps downloaded  from the web running as 
>widgets on those tablet OS... you know, give away the  open source Java runtime, 
>and  make money as middle man selling Java apps  to end users from the "Java App 

More information about the discuss mailing list