BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース JigsawがJava SE 9まで延期

JigsawがJava SE 9まで延期

原文(投稿日:2012/07/17)へのリンク

 

Java Platform グループのチーフアーキテクトであるMark Reinhold氏が彼のブログで、モジュールシステムの追加とJDKのモジュール化の提案がJava SE 9に延期される、とアナウンスした。

決定を下すのが難しかったにも拘らず、そうすることで、モジュールシステムをちゃんと作るために、これにもっと注力でき、そしてちょうど1年後の2013年8月に予定されている Java SE 8のリリースを遅らせずに済む。

この決定は、2010年にPlan Bとして、上手く考えられた計画を思い出させる。これは、Lambda(いわゆるJSR 335)の追加をJDK7のリリース後まで延期した。これによって、JDK7は約1年前(2011年の7月)、先の JDK6 のリリースから約4年半後に、リリースすることができた。

安定性と将来のロードマップを得るために、JDKは2年毎にリリースされ、2年に1度のリリーストレーンと呼ばれており、Eclipseの1年に1度のリリーストレーンに似ているReinhold 氏が言っているように、夏の前ではなく後で、そしてテンポは半分である。

これによって、大きな組織は、いつJDKの新しいバージョンにアップグレードすべきか計画でき、アジャイルの計画技法を使いながら、リリースを急がせたり、あるいは遅らせたりしようとせずに、準備した内容をきちんとした日程でリリースできる。

不幸にして、来年リリースされるJDK8には、 Jigsawを基にしたモジュールシステムが含まれないことになる。モジュール化導入の遅れは、一般の開発者には影響がない。しかし、ソフトウェアのコードベースが増大するに伴い、ソフトウェアアーキテクチャにおいて、モジュール化は、必要なツールである。OSGiPojoSRのようなモジュールシステムは、既にモジュールの実行時サポートを提供している。エンタープライズアプリケーションサーバー同様、多くのビルドとランタイムシステムにおいて、モジュール化は、重要な部分である。

モジュール化を追加することは可能であるが、長い歴史(そして典型的には、モジュール化を考慮して設計されていなかった)コードベースで、後付けでモジュール化するのは、非常に大変な作業になる、というのは事実である。ほとんど誰も JavaBeans APIがGUIへの依存性が必要になる、とは思わなかったろう。けれども、 java.beans.Beans#instantiate() メソッドは、java.applet.AppletInitializerへの参照を持っており、これが直接java.awt packageに依存している。結果として、JDKに対する後付けのモジュール化は、非常に挑戦的なこととして残る。そしてパッケージ数が増えるに伴い、その間で予想外の依存性が増すことになる。java.lang, java.iojava.net packageは、全て互いに循環参照しており、これらを異なるモジュールに分けるのを難しくしている。

最後に、 Jigsaw導入の遅れがOracleや他のモジュール化の専門家たちに提案を洗練したり、すでに作成された開発計画を練り直す時間を与えることになる。氏がブログではっきりさせているように、Jigsawの遅れは、これまで行われた開発、工数、あるいは実装の不足によるものではなく、予定されているJDK8リリースの遅れを回避し、JDKプラットフォームのモジュール化実装が最高の実装となることを確実にする手段なのである。

 

この記事に星をつける

おすすめ度
スタイル

BT