[速報]JavaOne開幕。Java 9は「Project Jigsaw」でクラスパスの問題とJDK肥大化の問題を解決する。JaveOne 2015

2015年10月26日

サンフランシスコでOracle OpenWorldと同時開催の「JavaOne 2015」が開幕しました。Javaが登場して20周年、19回目のJavaOneとなります。

基調講演ではJavaの歴史を振り返った上で、Oracle Java Platformチーフアーキテクト Mark Reinhold氏が来年にも登場する予定の次バージョンの「Java 9」で採用される予定の「Project Jigsaw」を紹介しました。

Mark Reinhod氏。

fig

Java 9では2つのことを解決しようとしている。1つはClaspath、もう1つは巨大なモノリシックとなったJDKだ。

fig

この2つの課題を1つの手段で解決しようと導入するのが「Module」で、それを進めているのが「Project Jigsaw」だ。

fig

classpathは「Jar hell」という言葉があるほど面倒を抱えている。例えばHadoopは7000ものソースファイルから構成されており、Classpathにこのようなワイルドカードを使っている。

fig

これを展開すると110ものパスになる。ここから1つ何かが消えても分からないよね?

fig

また、依存関係がコンフリクトを引き起こす可能性もある。使われている内部APIを変更しても大丈夫かどうかも分からない。

解決には、jarファイルの強力な抽象化機構が必要で、いま提案されているのが「Modules」だ。

Javaを見てみると、ステートメントや式として「Methods&Fields」があり、その上にそれらをグループ化する「Classes&Interfaces」があり、それらがまとまって「Packages」となる。

われわれはその上に、Packegeのコンテナとして「Modules」を提案している。Modulesは、ほかのModuleとどのように関係するかを記述できる。

fig

Moduleはこのように記述する。モジュール名と、なにに依存しているかを書き、どのパッケージをエクスポートするかを書く。

fig

Moduleを導入することで、パスが消えたり、コンフリクトを起こしたり、内部APIの変更が可能かどうかの判別などを解決できる。

Moduleはパッケージのコンテナであり、コンフィグレーションの信頼性と、強力なカプセル化を提供する。

fig

これは大きなプラットフォームの変化であり、浸透にはしばらく時間がかかるだろう。いきなり全員にmoduleの採用を押しつけることはない。過去のコードも走らせる必要がある。

Moduleはクラスパス地獄からの脱出策となると同時に、巨大でモノリシックなJDKの解決策にもなる。

JDKをモジュールに分割することで、小さなデバイスからクラウドの上までJDKをスケールさせることができるようになると同時に、JDKをメンテナンスしやすくし、セキュアな状態を保ちやすくする。

モジュール化により、いずれJDKの内部APIはカプセル化されアクセスできなくなるがJava 9では広く使われている内部APIなどはそのまま利用できるようにするつもりだ。

Moduleは、例えばLambdaのような言語の強化ではなく、シートベルトのようなもので、安全により速く進むためのものだ。

fig

JavaOne 2015

Oracle OpenWorld 2015

あわせて読みたい

Java プログラミング言語 Oracle




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本