2009年10月7日水曜日

Java 7のモジュール

Simple Module SystemはJSR294を救えるか?」を読んだ。最近は、ほとんど InfoQ の記事だけあれば、興味が満たされておなか一杯。

記事は JSR 294 が抜本的に見直されるかもしれないという内容。JSR 294 は、JSR 277 と共にJavaのモジュールの扱いを改善する仕様で、どちらも、もう何年も前からわりとよくアナウンスされてきた。

個人的な理解だと、JSR 277の方は、.NET の GAC のJava版かな。やっぱり今の Java のクラスパスや jar の扱いは、.NETに比べるとちょっと原始的。この仕様では、jar に替わる jam (.NETアセンブリみたいなもんか)なるものを用いたバージョンや依存性の管理、またリポジトリなんかの仕組みも定義されるとのこと。

デプロイ時のモジュラリティを扱う JSR 277に対して、JSR 294の方は superpackage というモジュール単位を導入して、主に言語仕様レベルで開発時のモジュラリティを改善するというものらしい。個人的には、要するに 「Public versus published」の考え方が導入されるのだろうと、ざっくり理解。

といった予備知識で、記事をさらさらと眺めていくと「メタモジュールシステム」なんて難しげなキーワードが出てくる。うーん、そんなのあったっけ?で、読み進むと、そのメタモジュールシステムを止めちゃえば?と言う話の流れらしく、ちょっと議論についていけなくなる。まあ細かい事は正式リリースしてからでいいや。

それにしても、Java 7開発は、もうちょっとスマートにプロジェクト管理できないもんかなあ。まあ、言語仕様にも関わるだけに、とりあえずリリースしてダメなら直すなんてのが許されないのは解るけど、もう何度も延期してないか? SI現場ならリスケはだいたい一回までが常識なんだが。Java 7開発自体、デスマーチ化してるんじゃないだろうか。

結局 Java SE 7って、正式リリースはいつなんだろう? 1年半ごとにJava5、6、7とリリースする予定だった気がするが・・・。Java EE 6から JBI が外されたりもしてるらしいし、SEも EEもグダグダ感がひどい。

JSR 277: JavaTM Module System
JSR 294: Improved Modularity Support in the JavaTM Programming Language

0 件のコメント:

コメントを投稿