[速報]Java 9が正式リリース、Javaをモジュール化するProject Jigsawがついに実現。今後のJavaは6カ月ごとタイムベースのアップデートへ
米オラクルは9月21日(日本時間9月22日未明)、Javaの最新バージョンとなるJava 9正式版を公開しました。
Java 9 is Out!!!!#JDK9 #Java9 #Javahttps://t.co/VE7BI4KPlK pic.twitter.com/kOdNiLJ1ky
— Java (@java) 2017年9月21日
Java 9最大の新機能は「Project Jigsaw」として開発されたJavaのモジュール化機能です。おそらくJavaの開発のなかでももっとも難産なプロジェクトだったといえるでしょう。
難産の末にProject Jigsawがついに実現
Javaをモジュール化して必要な部分だけを使えるようにすることで、Javaライブラリの複雑な依存関係の解消やJavaのスリムダウンを実現するという、意欲的な仕様および実装の実現を目指したProject Jigsawは、2011年にリリースされたJava 7に組み込まれる予定でした。
しかし開発の遅れで入らず、2014年にリリースされたJava 8にも議論の末に見送ることが決まり、Java 9で実現するべく作業が進められていましたが、それでもProject Jigsawの開発の遅れでJava 9のリリース予定は何度も延期されてきました。
今年に入ってもまだProject Jigsawは、その仕様であるJSR 376(JPMS:Java Platform Module System)を承認するかどうかの議論がコミュニティで続き、6月に行われたパブリックレビューの再投票でようやく修正案が可決。今回の正式リリースへとこぎつけました。
参考記事
Javaの次のバージョンとなるJava SE 8に新機能として入る予定だったProject Jigsawについて、実装時期を延期する提案をするとOracleのJava Platform Groupチーフアーキテクト、Mark Reinhold氏が書いたブログ「Project Jigsaw: Late for the train」で表明されています。
Javaをモジュール化して必要な部分だけを使えるようにすることで、Javaライブラリの複雑な依存関係の解消やJavaのスリムダウンを実現する「Project Jigsaw」の仕様であるJSR 376(JPMS:Java Platform Module System)のコミュニティが締め切られ、ほぼ全会一致で可決されたことが明らかになりました。
Javaのシェル「Jshell」も
JavaのAPIをシェルからインタラクティブに使えるという「Jshell」も、Java 9の新機能として注目されています。
シェルからAPIの探索にも使え、補完機能があるのでAPIがどんなメソッドを使えるのか調べるときの支援ツールにもなります。
一方でJava 9は日付や通貨のデフォルトフォーマットが変更され、いくつかの構文や演算子の変更や廃止が行われるなど、Java 8以前との互換性は保証されていません。Java 9への移行へは十分な調査などを行うべきでしょう。
Java 9からは6カ月ごとのタイムベースでアップデート
これまでJavaは大きな機能追加を契機に数年ごとのメジャーバージョンアップを行ってきました。しかしJava 9以降は6カ月ごとのタイムベースでアップデートを行っていく提案が行われています。
おそらく今後は3月と9月の6カ月ごとのリリースと、セキュリティフィクスやバグフィクスのための3カ月ごとのリリース、そして長期サポートの対象となる3年ごとのリリースを組み合わせたリリースサイクルでJavaがアップデートされていくことになると見られます。
10月には年に一度のJavaの大きなイベント、JavaOneが予定されています。そこではおそらくこのリリースサイクルやJava 9以降のロードマップなどについてあらためて説明されていくことになるでしょう。
参考記事
2017年9月に「Java 9」が登場したばかりですが、いまから1カ月後の2018年3月には早くもJavaの新バージョン「Java 10」がリリースされます。そしてその6カ月後の9月にはさらに次の「Java 11」がリリース予定です。
Java 9から、Javaは6カ月ごとのタイムベースによるアップデートサイクルが採用されました。そしてその最初のワンサイクルが経過し、Java 9の次のメジャーバージョンアップとなるJava 10が登場する予定です。
関連記事
あわせて読みたい
JavaVM「Eclipse OpenJ9」公開。IBMが「Java 9と同時にオープンソース化する」との約束を果たす
≪前の記事
StackOverflowが「給与見積もりサービス」を公開。もしサンフランシスコのフロントエンド開発者だったら、ベルリンのデータサイエンティストだったら、給料はいくらか?