BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース 乗り遅れた Project Jigsaw - 延期を承認

乗り遅れた Project Jigsaw - 延期を承認

ブックマーク

原文(投稿日:2012/10/21)へのリンク

 

今年7月,Oracle のチーフアーキテクト Mark Reinhold 氏の書いたひとつのブログ記事 "出遅れた Project Jigsaw (Project Jigsaw: Late for the Train)" には,Java 8 とのリリースという Project Jigsaw の当初スケジュールを Java 9 リリースまで,少なくとも2年間延期するという内容の提案があった。

この提案はその後,JSR 337 Expert Group によって承認されている

その反響を取り上げた InfoQ の記事に対しては,読者からの反応が相次いで寄せられた。

Rehinhold 氏はそれに 回答するブログエントリ で,ほとんどの重要な質問に対して経緯と理論的根拠,代替案を詳細に説明している。

Reinhold 氏の説明を要約すると,次のようなことだ。JDK のモジュール化は複雑な作業であり,Sun Microsystems が配置した要員数では不足だった。また,すべての要件に対応できないので,OSGi や Maven といった既存技術の採用は選択肢にならなかった。

Project Lambda を Java 9 まで延期してスタッフを Jigsaw に振り替えてはどうか,とまで提案するコメントもあったが,Reinhold 氏はそれは不可能だと回答している。

しかしながら,詳細な回答のない提案がひとつ残っている。それは次のようなものだ:

Reinhold 氏の説明によると,Project Jigsaw は次のような2フェーズで構成されている。

第1のフェーズは,Java プログラム言語や仮想マシン,API が変更可能であるという前提のもとに,既存の Java のモジュール化ソリューションとは大きく異なるアプローチについて検討しています。そうすることでコンパイルからデプロイ,実行に至るすべてのプログラムフェーズにおいて,モジュールバウンダリを強制するようなデザインが可能になるのです。結論から言うとこの方法は,ユーザビリティや診断性,セキュリティ,パフォーマンスなどの面で優れています。第1フェーズの最終目標は,Module-System JSR EG の研究成果を示すために,実行可能なプロトタイプを開発することです。

第2フェーズでは,Module-System JSR EG が作成した仕様のリファレンス実装を開発する予定です。最終的に EG の選択するアプローチは,私たちが現在検討しているものとはまったく違うものになるかも知れません。もしそのような状況になれば,Project Jigsaw の進む方向を変更することになるでしょう。しかしながら,どちらの道を選択するにせよ,私たちの現在の開発成果に対して良い結果をもたらすだろうと考えています。

それならば,比較的シンプルと思われる第1フェーズを Java 8 で提供して,第2フェーズを Java 9 まで延期するという選択はなかったのだろうか? Reinhold 氏の返答は,

あるリリースでモジュールシステムは提供するが,それを使用した JDK のモジュール化は以降のリリースに延期するという方法では,根本的な過ちを犯すリスクが大きいのです。そのようにすれば,後のリリースでモジュールシステムを修正しなければならなくなるでしょう。基本設計の欠陥を後になって修正するというのは,決まって良い結果には終わらないものです。

Expert Group は全会一致で合意に達した。あるメンバによれば,

SE 8 のリリースを大幅に遅らせることなく,これを行う明確な戦略が存在しないように思えたので,私は賛成票を投じました。

モジュール化フレームワークを提供することが成果として重要なのであって,2つのフェーズを別々に提供することのリスクは,JDK をモジュール化する事実に比べればごく小さなものだ。この大きな意味を持つ成果を,リスクを承知で早期すなわち Java 8 で提供するべきか,あるいはモジュール化は Java 9 まで延期するべきか,読者のみなさんの意見を知りたいと思う。

別の視点を持っているならば,下のコメントであなたの意見を聞かせてほしい。

 

この記事に星をつける

おすすめ度
スタイル

BT