コミュニティが、Javaのエコシステムを支えている
セッション序盤はJavaを支えるエコシステムについて語られた。
Javaの開発プロセスは「標準仕様(※注1)を策定した後、各社が仕様に沿って実装する(※注2)」流れになっている。標準仕様を策定するプロセスには大きく「JCP(Java Community Process)」と「JEP(JDK Enhancement Proposals)」の2つがある。なお、セッション内ではJCPとJEP両方についての解説が行われたが、本稿では前者のみをピックアップして掲載する。
JCPはJava APIの仕様策定プロセスだ。まず「JSR(Java Specification Request)」という仕様の変更要望が提案される。その後Expert Groupと呼ばれる、仕様の是非を検討するチームが結成される。
そのExpert Groupのメンバーが初期ドラフトを作成・公開し、多くのエンジニアが改善策について議論しながらブラッシュアップ。最後にExecutive CommitteeというJCPの中心メンバーたちが多数決で承認すれば、仕様が確定する形になっている。
確定後にはさらに、「RI(Reference Implementation)」と「TCK(Technology Compatibility Kit)」の2つが作られる。
RIとは参照実装を指す。仕様の説明文言だけでは意図が伝わりにくいケースがあるため、エンジニアに参照してもらうためのサンプル実装をセットで作るというものだ。
TCKは技術互換キットと呼ばれる、仕様通りに製品が実装されているかをテストするためのもの。TCKにパスすると、Javaの製品であるという認定を受けることができる。この認定作業(ライセンス発行)は、Sun MicrosystemsやOracleが一元管理してきた。
「こうした体制をとるメリットには『Javaエコシステムの形成』と『派生の回避』があります」と鈴木氏は話す。
「複数のJava実行環境を開発する会社が標準仕様策定のプロセスに参加することで、ユーザーは標準仕様部分については特定の環境に依存せずに実装が行えます。これにより、ロックインのない健全な競争が行われます。また、標準仕様準拠への認定を一元化することで勝手な派生がなくなり、標準仕様を壊さないようにできるのです」
また、鈴木氏はオープンソースのソフトウェアプロジェクトを支援する団体である「Apache Software Foundation」と「Eclipse Foundation」についても触れた。
Apache Software Foundationが作ったもので大きな価値を持つのが、「Apache License」というオープンソースライセンスだ。これは、各種オープンソースツールのコードを書き変えた場合に、改変後のコードを公開しなくていい非コピーレフト(※注3)のライセンスである。商用利用がしやすいため、多くの企業がApache Licenseを採用した製品やライブラリを利用して開発をおこなっている。
※注3
-
コピーレフト:改変のコード公開が必要、リンク先に影響
- GNU General Public License(GPL)
-
準コピーレフト:改変のコード公開が必要、リンク先は不要
- GNU Lesser General Public License(LGPL)
- Mozilla Public Licens(MPL)
- Eclipse Public License(EPL)
-
非コピーレフト:改変のコード公開が不要、リンク先も不要
- BSD派生
- MIT License
- Apache
一方のEclipse Foundationは、Eclipse IDEやEclipse Platformの関連製品などを提供している団体だ。Eclipse本体はEclipse Public Licenseという準コピーレフトなライセンスであり、本体への改変はコードを公開する必要があるものの、プラグインには及ばない。よって、プラグインをクローズソースで開発し、有償で提供するビジネスモデルが 可能となっている。