Hacker Newsの伝えた Androidソースコードのコミットメッセージによると,GoogleのモバイルオペレーティングシステムのJavaライブラリ実装が,Harmonyをベースとしたオリジナル版からOpenJDKのものにスイッチされる模様だ。この移行に関しては,GoogleもVentureBeatで認めている。
Androidでは,Java言語とそのライブラリが広範に使用されている。後者は,すでに開発を終了したApache Harmonyプロジェクトをベースとするものだ。HarmonyはJavaランタイムと関連ライブラリ,および関連ツールのフリーなオープンソース実装として開発が始められたが,SunがGNU GPLライセンスのオープンソースJavaとしてOpen JDKプロジェクトの実施を決定し,後にJava Platform SEのリファレンス実装となった経緯がある。
Googleが同名の企業を2005年に買収してAndroid開発に着手したとき,同社はアプリケーションフレームワークと開発ツールのベースとしてHarmonyを採用した。当時まだOpenJDKは存在していなかった。その後,2010年にSunを買収したOracleが,AndroidのJavaコード使用に関連する著作権と特許権侵害でGoogleを提訴した。当初は陪審員がJava APIを著作権保護の対象ではないと判断したことでGoogleが勝訴したが,APIが著作権で保護可能とする連邦巡回裁判所の判断によって,判決の一部が覆された。これに対して米国最高裁判所は判断を回避し,下級裁判所への差し戻しを行った。裁判は現在も継続中である。
Googleは今回,この裁判と並行する形で,AndroidへのOpenJDK実装の採用を決定したことになる。 関連するソースコードコミットが新たにWebに送られた後に,GoogleはVentureBeatに対してこの件を認めている。
オープンソースプラットフォームであるAndroidは,オープンソースコミュニティのコラボレーションの上に成り立っています。次期Androidリリースにおいて私たちは,AndroidのJava言語ライブラリをOpenJDKベースのアプローチに移行し,アプリやサービスを開発するための共通コードベースを開発することを計画しています。Googleはこれまで長くOpenJDKコミュニティに貢献してきましたが,今後さらに同プロジェクトに協力できることを大変うれしく思っています。
理由としてGoogleはVentureBeatに,Java 8が持っているラムダ式など最新の言語機能の利用に関心があること,OpenJDKへの投資に意義があること,などをあげている。Googleは今回の変更によって,“これらJava APIライブラリが複数のコードベースではなく,共通のコードベース”を持つことによるコードの簡略化という点で,Android開発者に資する部分があると考えている。
クロスプラットフォームのJavaツールセットであるCodename Oneを共同開発したShai Almog氏は,GoogleのOpenJDK採用に対する自身のコメントを次のように結論付けている。
すべてのJava開発者にとって素晴らしいニュースです!
開発対象がAndroid,サーバ,,モバイル,あるいはデスクトップであっても!
これは長らく待ち望まれていた,GoogleとOracleの”和平プロセス”の始まりかも知れません。少なくとも停戦ではあるでしょう。私たちすべてが,ひとつのJavaバージョンに列をなす(Androidのアップデートプロセスの遅さを考慮に入れて)ようになるかも知れません。」Javaの閉鎖性を問題視していた一部の開発者に対しては,Javaを再び関心の中心に呼び戻すという役割が期待できます。
進行中の法的紛争を解決するための合意に,GoogleとOracleが到達したかどうかは明らかになっていない。OpenJDKプロジェクトにGoogleが参加することで,同プロジェクトの,さらにはJavaエコシステム全体の活性化が期待される。