Javaのモジュール化を前進させるProject Jigsawは、Java 8からこぼれてJava 9へ
Javaの次のバージョンとなるJava SE 8は来年2013年9月頃に最終リリースを予定しています。このJava SE 8に新機能として入る予定だったProject Jigsawについて、実装時期を延期する提案をするとOracleのJava Platform Groupチーフアーキテクト、Mark Reinhold氏が書いたブログ「Project Jigsaw: Late for the train」で表明されています。
その日本語訳が、日本オラクルでJavaのエバンジェリストをしている寺田佳央氏のブログにポストされた記事「Project Jigsaw: 列車の遅れ」で紹介されています。
Java SE 8を2013年9月頃にリリースすることを優先させるため、Project JigsawはJava 9へ延期するというのが、今回の提案の内容です。
提案した Java SE 8 の開発スケジュールは2013年 9月頃に最終リリースを行うために、5月に主要な機能を完成させるように作業を行っています。進捗は着実に進んでいますが、いくつかの重要な課題が残っています。またプラットフォームの要求に対する重大な変更のような内容に対する、幅広い評価、レビュー、フィードバックを頂くための十分な時間がない事も重要です。そこで、Project Jigsaw を次のリリースである Java 9 への延期を提案したいと思っております。
Java言語を拡張してモジュール化対応
Project Jigsawとは、Javaを大規模プログラミングへよりよく対応させるためにJava言語を拡張し、グループ化や依存関係、バージョン管理などを表現できるハイレベルのモジュール構造を実現するために改良を行うプロジェクトです。
昨年11月に開催されたJavaOne 2011に関する記事「Java 8、Java 9はどうなるのか。JavaOneの基調講演で示された方向性。JavaOne 2011」から、Jigsawの説明を引用します。
Javaでコンポーネントの再利用を行う場合、いまはクラスパスを用いる。
Project JigsawではJava言語を拡張し、ハイレベルの構造を備えたJavaコード的な表現を可能にする。
クラスパスのアグリゲータも定義できる。
クラスを、jarにも、新しいフォーマットのjmodや、rpmやdebパッケージなどにできる。
これはJavaのモジュールシステム化を進めることであり、例えばメモリが10メガバイトのようなマシンに対応することでもある。
Java 9は2015年
延期の理由として、このProject Jigsawに関する変更を実装するのに時間がかかることがあげられています。寺田氏のブログから引用します。
既存コードの互換性を維持しながら Java SE プラットフォームと JDK のモジュール化を実現するためには、仕様と実装の両方を通じて慎重に変更を加えなければならない、とても繊細な作業が求められます。それ以上に Java プラットフォームでサポートしているコンテナに対する設計やプロトタイプに対する実装も必要えす。例えば、統合開発環境、Java EE アプリケーションサーバ、アプレットコンテナなどで、これらの全てでそれぞれある程度の量の実装が必要になります。
我々はこれらの問題を抱えていたとしても、システムを動作させる事ができる事を確信していますが、これらを実現するためには、2013 年 5 月を超えてしまう可能性が非常に高くなっています。
Javaは今後2年ごとにアップデートを予定しているので、Project JigsawがJava 9に入るとすれば2015年の秋頃のJava 9でリリースされることになるでしょう。