--条件とは何か。Javaはオープンソースソフトウェアではないのか。
オープンソースソフトウェアはさまざまな自由を認めているが、何でも好きなことをやっていいというわけではない。
Sunは、Java Standard Editionプロジェクトのオープンソース版である「OpenJDK」と、Java Micro Editionのオープンソース版である「phoneME」で、GNU General Public License(GPL)を採用した。ただし、これら2つのプロジェクトの間には微妙ながらも重要な違いがある。
OpenJDKでは、Sunはクラスライブラリコードの「クラスパス例外(Classpath Exception)」と呼ばれるものをGPLに付け加えた。その例外は、GPLの管理下にあるプロジェクトから派生したプロジェクトもGPLの管理下に置かれるという重要なGPL要件を回避するものだった。クラスパス例外によって、プログラマーは、GPLの管理下にあるライブラリの使用で自分のソフトウェアが「感染」し、そのソフトウェアもGPLの下でのリリースを義務づけられてしまうことを心配する必要がなかった。
しかし、phoneMEにクラスパス例外はなかった。SunのTerrence Barr氏はその決定について、「われわれがJava MEにクラスパス例外を追加しないことに決めたのは、Java MEアプリケーションがプラットフォーム実装と一緒にバンドルされて出荷されることは通常はないため、明示的なクラスパス例外は必要ない、という単純な理由からだ」と述べた。
通常かどうかは分からないが、Androidではまさにその状況が起きてしまった。そして、Googleはそれに不満を抱いていた。同社が求めるオープンソースプロジェクトは、独占的なソフトウェアとの融合も含めて、他者が都合の良いように修正できるものであった。それには、ユーザーインターフェースから動画デコーディングパッケージ、カスタムキーボードまで、あらゆるものが含まれる可能性がある。
Android担当責任者であるAndy Rubin氏は、OracleがGoogleに対する訴訟で何度となく提示している2007年8月11日付けの電子メール(PDFファイル)で、「われわれは、プラットフォームを構築している。そのプラットフォームの唯一の目的は、人々がそこで差別化を図れるようにすることだ」と述べた。「Sunはまさにこのことが理由でGPLを選択した。そのため企業はSunの元に戻ってきて、直接ライセンスを取得し、ロイヤリティを支払う必要がある」(Rubin氏)
CNET Japanの記事を毎朝メールでまとめ読み(無料)
ものづくりの革新と社会課題の解決
ニコンが描く「人と機械が共創する社会」
ZDNET×マイクロソフトが贈る特別企画
今、必要な戦略的セキュリティとガバナンス