AppleがiPhone SDKを発表してから1日もしないうちに、Sun MicrosystemsはJava ME JVMをAppleのiPhoneおよびiPod Touchに移植する意向を表明した。ビデオ録画による発表(source)の中で、Eric Klein氏はJVMがiPhoneで動作しないわけがないと述べている。
「過去24時間は、SDKに関してAppleが提供しているあらゆる情報の収集に費やし、iPhoneおよびiTouch(iPod Touch)の開発の一部を第三者に委託する決定を下したことに、興奮せずにはいられない。Javaに対するもともとの展望の1つには、デベロッパコミュ ニティが世界中で可能な限りのデバイスに素晴らしいコンテンツおよびアプリケーションを作成可能にすることで、その点では、iPhoneが重要なプラット フォームである」。
Sunの発表を受けて、目先が利くブロガーやフォーラムへの投稿者が、Sunの移植の妨げとなりうる2つの重要な問題を指摘した。その1つは、ライセンス契約条項である。
「アプリケーションはそれ自体決してインストールせず、その他の実行可能なコードを実行しない。プラグインアーキテクチャーの使用、他のフレームワークの 呼び出し、その他のAPIなどに関する制限がないとしてもである。AppleのPublished APIや組み込みインタープリターで解釈され実行されたコードを除けば、アプリケーションでダウンロードもされないし、使用もされない」。
2つ目は、一見したところ、SDKにおける技術的な制限である。Appleの公式iPhone Human Interface Guidelines(Apple iPhone Dev Center(source)から利用可能、要ログイン)によると、1つのiPhoneアプリケーションのみが同時に実行でき、第三者によるiPhoneアプリケーションはそのバックグラウンドでは実行しないようである。
「これは、ユーザが他のアプリケーションに移行したり、電話に出たり、メールを確認したりするとき、使用していたアプリケーションが終了することを意味する。重要なのは、この現実によってユーザが悪影響を受けることはないことである。つまり、ユーザはiPhoneアプリケーションをあきらめて、そして後で そこに戻ることは、コンピュータでアプリケーションを移行することより困難だと感じるべきではない。
恐らくこれは技術的な制限ではないのだが、iPhoneは、 複数の並行処理をサポートするMac OS Xと同じカーネルを実行する。iPhone自体は確かにマルチタスクである(そうでなければ、たとえばそれでSafariを使用しているとき、 音を出すことができない)。したがって、この制限は、第三者によるバックグラウンドプロセスで使用されるRAM量を制限する際に課されることが多い。それゆえに、Appleが、選ばれた第三開発業者に自身のバックグラウンドでアプリケーションを実行させる機能を与えると推測するのが妥当なように思える。しかしながら、AppleがSunにそういった権利を与えるとは想像しがたい。 まず第一に、Java MEアプリケーションをiPhoneやiPod Touch でインストールできたり、実行できるようにすることで、店舗への分配をAppleが意図している通りに規制することが難しくなる。また一方で、ここ数年に わたり、JavaとAppleの関係がますます悪化しているような現実がある。それとは対照的に、JavaOne 2000での基調講演でSteve Job氏が以下のように語った。
「われわれが望んでいるのは、大々的にJavaをデスクトップに復活させることである。今日わたしがこの場にいるのは、この地球上でMacが最高の Java提供手段にすべく、日々努力していることを個人的に伝えるためである。今われわれが取り組んでいる最大のことは、すべてのMac OS X(発売予定のMacintoshオペレーティングシステム)にJava SEを搭載することである。今期下半期に発売予定である」。
昨年は、New York Times(source)に以下のような意見を述べた。
「Javaは構築する価値はない。もはや誰も使っていない。これほどまでに重いボールや鎖である。」
先週Eric Klein氏は引き続き声明を出し、Sunの計画を阻害する条件があるならば、Sunは喜んでAppleとの協議の場を設けることを述べた。
「われわれの発表は、iPhoneやiPod Touch向けにJVMを構築することの興奮とAppleが公開しているSDKやそれに関連した取引条件についての情報の評価に基づいている。 iPhone beta SDKライセンス契約で条項があり、それが潜在的に第三者のアプリケーションの分配を制限するものであるならば、それらについてAppleと前向きな協議を持ちたい。SunおよびAppleは、Mac OS XのJava SEがらみで継続的な関係を保っており、iPhoneおよびiPod TouchについてAppleとさらに詰めた協議をおこなうことを期待している。間違いなくSunは、iPhoneおよびiPod Touch向けにJVMを提供する計画を可能な限り立てている」。
JavaOneの開催期間に、Sunが詳細を発表することになれば面白くなるであろう。