もちろん、Java SEへの移行が一夜にして行われるわけではない。Sunのソフトウェア担当エグゼクティブバイスプレジデントであるRich Green氏は、さまざまな簡易版Javaを搭載したスマートフォンが今後10年以上は市場にとどまり続けるであろうと予想している。
しかし、移行が既に始まっていることは確かだ。Gosling氏は「Java MEはますますJave SEに近づいてきている」と語る。
モバイルJavaのデフラグ
Java SEに移行すると、Java MEを慢性的に悩ます問題、つまり断片化を解消できる。
Java MEは、基本的なオプションの上に高レベルなオプションを重ねるかたちで各種の機能を寄せ集めてあり、それぞれのオプションはJava Specification Request(JSR)と呼ばれる詳細な記述によって定義されている。Java MEでは、このJSRがさまざまな機能に対応して多数存在するため、「一度書いたプログラムはあらゆるプラットフォーム上で実行可能(write once, run anywhere:WORA)」というJavaが本来持つ特徴に難題を突きつける結果となった。
WORAとは、Javaで記述されたプログラムは原則的に「Java仮想マシン(JVM)」を持つあらゆるコンピュータで実行できるということだ。JVMは、汎用のJavaプログラムを特定のコンピュータで実行するために使用するソフトウェア基盤である。しかし、Java MEの拡張機能はさまざまであり、ある携帯電話用に作成されたプログラムが別の携帯電話で機能する保証はほとんどない場合が大半だった。
一方、基本的な機能が豊富なJava SEをJava MEの代わりに使用すると、少なくともソフトウェアの移植性に関してJavaが本来備えるべき特徴を部分的に取り戻すことが原理的には可能になる。