AppleがMac OS Xに組み込んでいるJavaランタイムの開発および提供を終了する方針を明らかにした。20日に"Back to the Mac"イベントを開催した後、同社が配布開始したMac OS X 10.6 Update 3のリリースノートで発表した。

Appleは同イベントで発表した新型MacBook AirにFlash技術を入れずに出荷している。テクノロジ関連のニュースではiOSにおけるFlash論争の延長として、Flashのプリインストール中止の方が大きく報じられている。だが問題としては「Java Deprecation」の方が深刻だ。

Macユーザーではない方に説明すると、Mac OS XにはAppleが移植したJavaランタイムが組み込まれて出荷されている。Mac OS Xのソフトウェアアップデートを通じてOSやAppleのアプリケーションと同じようにアップデータの提供が通知され、ワンクリックでJavaも一括アップデートできる。

Mac OS X Snow LeopardではOSのソフトウェアアップデート機能でJavaランタイムのアップデートが可能

問題はMac OS XでJavaが手厚くサポートされているため、その代わりになるようなサードパーティ製のJavaランタイムがないことだ。SoyLatteやOpenJDKなどが存在するものの現状では目的が絞られている。Flashがプリインストールされていなくても、ユーザ自身がAdobeのサイトから最新版を入手してインストールすればよい。Flashのアップデートの頻度を考えれば、むしろユーザーがプリインストールに頼ってしまうよりも安全と言える。だがApple提供のJava仮想マシンがなくなると、MacでJavaアプリを動作させる道がか細くなる。そのためAppleがFlashに続いてJava潰しに乗り出したとか、ユーザーを囲い込むためにクロスプラットフォーム技術のサポートから手を引き始めた、はたまたEclipseを開発環境とするAndroidに痛手を与える一手である等々、さまざまな分析やコメントが飛び交っている。

JavaOne会場はMacユーザーだらけ、それなのに……

Mac OS X 10.6 Update 3のリリースノートによると、AppleがポートしたJavaランタイムは同バージョンをもって終了となる見通し。開発者に対して、Appleが提供するJavaランタイムに依存しないように訴えている。Mac OS X 10.6 Snow LeopardとMac OS X 10.5 Leopardと共に出荷したJavaラインタイムについては製品サイクルを通じてサポートし続けるという。

NeoOfficeやLimeWireなどJavaを用いたアプリケーションは多々あるものの、少々無責任なコメントになるが、MacにおけるJavaランタイムが途絶えたとしてもMacユーザーは他のアプリケーションで用を足せる。むしろ困るのはJava開発者である。おそらくJava開発者の間でMacはシェアトップのパソコンだと思う。2004年に当時Sun Microsystemsが開催していたJavaOneに参加したときに、会場のMacユーザーの多さに驚いたことを覚えている。開発者の間でMacユーザーが増え始めていたものの、それでも他のカンファレンスでは2割程度。しかしJavaOneでは明らかに過半数だった。WindowsのJavaランタイムでMicrosoftとSunがもめていた時期で、UNIXベースでJavaがサポートされているMac OS XはJava開発者の#1チョイスだったのだ。彼らは、その後のMacの成長に少なからず貢献してきたはずだ。

AppleがJavaサポートを止める理由は不明である。JavaデベロッパであるPortico SystemsがAppleのJavaに対する将来計画を問いただすメールをSteve Jobs氏に送ったところ、Jobs氏本人から返信があったとMacRumors.comが報じている。その返信メールの中でJobs氏は、Mac以外のプラットフォームにはSun (現Oracle)がJavaランタイムを提供しており、それらは常にAppleよりもすばやくエンドユーザーに届けられているから、Mac向けも同様に提供されるのが最善ではないかと述べている。

Jobs氏からの手紙が話題を集めるようになってから偽物が急増しており、噂サイトに分類される媒体の報道を鵜呑みにはできないが、"Javaの父" James Gosling氏がこのMacRumorsの記事内容にコメントしている。

まずApple以外のプラットフォームにSunがランタイムを提供しているという点について、IBMやHPなども独自にJava仮想マシンを提供しているとし、「プラットフォーム所有者にはそれぞれのプラットフォームがライバルより優れているという自負があるから、自身での移植を望み、多大なエネルギーを投じられる」と述べている。ただし、Linuxの場合は安定して提供するためにSunが率先して手がけてきた。Appleについては、同社のコントロールフリークな傾向からカスタマイズ過剰になったことがアップグレードの遅れにつながったと指摘。それも近年改善され、AppleのJava仮想マシンはスムースにアップグレードされていたとしている。それにもかかわらずAppleがJavaのサポートから手を引こうとしている理由として、同氏はMac OS Xの「非公開API」の存在を挙げている。中でもグラフィックレンダリングが大きな障害になっているという。

James Gosling氏もMacユーザーの1人

D8でFlash技術が話題になったときにJobs氏は、成熟していたとしても秋枯れの技術より春を迎える(これから伸びる)技術を選ぶと述べていた。Javaも秋枯れと見なされているのかもしれないが、Mac App Store発表直後というタイミングを考えると、Javaサポートからの撤退はAppleが自身のプラットフォームにまとめ上げようとする一連の動きの一環と考えた方がスッキリする。

ただiOSにおけるFlash非サポートと違って、Mac OSプラットフォームからJavaが排除されるわけではない。Mac OS X LionでMac App Store以外からアプリケーションを入手できなくなる……なんてことにはならないだろう (たぶん……)。さまざまな見方や意見が錯綜して複雑になってしまっているが、シンプルに考えれば、Appleから投げられたボールがいまOracleの手にあるということだ。Appleのプラットフォーム戦略や非公開API云々よりも、まずはOracleの反応である。Oracleがクロスプラットフォームを重視し、そして本気でJavaFX 2.0を広めるつもりならば、Mac OS向けのJava仮想マシンを必ず用意するはずだ。MacユーザーやJava開発者ならずとも、その動向に注目である。