「Make Java Great Again」を目指して――コミュニティと共にある、Javaのこれまでとこれから
「MANABIYA -teratail Developer Days-」基調講演「Javaのカルチャーとグロース」レポート
2018年3月23日~24日。teratailがおくるITエンジニアの問題解決カンファレンス「MANABIYA -teratail Developer Days-」が開催された。ITエンジニアの「疑問」を日本中から集め、カンファレンスを通じて解決策を見いだし、「知恵」を生み出すことを目的としたこの催し。今回はその中から、23日の基調講演「Javaのカルチャーとグロース」の模様をお届けする。1995年にリリースされた後、汎用性の高いオブジェクト指向言語として不動の地位を確立してきたJava。これまでいかなる歩みをたどり、今後はどのような未来を描こうとしているのか。グロースエクスパートナーズ株式会社 執行役員であり日本Javaユーザーグループ会長の鈴木雄介氏が概観を語った。
コミュニティが、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という準コピーレフトなライセンスであり、本体への改変はコードを公開する必要があるものの、プラグインには及ばない。よって、プラグインをクローズソースで開発し、有償で提供するビジネスモデルが 可能となっている。
この記事は参考になりましたか?
- この記事の著者
-
中薗 昴(ナカゾノ スバル)
週の半分はエンジニア、もう半分はライター・編集者として働くパラレルキャリアの人。現職のエンジニアとして培った知識・経験を強みに、専門性の高いIT系コンテンツの制作を行う。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
