At the beginning of February I took a quick look at the future of Java ME under Oracle.
Jaxenter has an informative article on Oracle’s "Write Once, Run Anywhere" strategy.
Some interesting observations from the article…
"Sun has prevented the adoption of Java SE on a large scale within the mobile phone market with its Field of Use Restrictions in TCK-licenses. This has resulted in a proprietary Java environment based on Dalvik on Android devices."
"In an ideal world, this unification would include Android. But this is unlikely: Android already has an established market."
"More transparency in the TCK tests and an open-source approach for TCKs would also be desirable."
"In my opinion, the lack of a really powerful user interface API is still the real weakness of Java ME. Even MIDP 3 is only a slightly revamped version of the outdated LCD UI. There are some proprietary alternatives, and Sun has also already launched its LWUIT UI project. However, none of these are standardised, and do not ship pre-installed on devices."
I personally think LWUIT has gone a long way to improve the Java ME UI. It doesn’t have to be pre-installed on devices as it is (just) small enough to be included with the application. The advantage of LWUIT is that it can be used in the billions of existing phones rather than waiting for new phones to have a pre-installed solution.
However, if Oracle unifies Java SE and Java ME then LWUIT probably doesn’t have a future. I suspect a newer or evolved UI will be produced that will be incompatible with old phones. Java ME will be ‘rebooted’ – much like Palm, Symbian and now Windows Mobile. Current strategy is such that a clean break is seen as the best way of untying platforms from their old problems and limitations.