Java 9のその先へ~JavaOne Conference 2017レポート

第1回 JavaOne 2017開幕,キーノート速報~Project Jigsawついにリリース!女性コミュニティ活性化,データが創る未来

この記事を読むのに必要な時間:およそ 3 分

今後のJavaは6ヵ月ごとにリリース

続いてJava SEについても,現在商用版として提供されているOracleJDKを,有償の拡張機能も含めてオープンソース化し,OpenJDKとOracleJDKを完全に同じものとすることも改めて発表されました。

さらに,今後はJavaのリリースサイクルを見直し,これまでのような大型のメジャーバージョンアップの方式をやめて,6か月ごとに定期的にアップデートしていく方針にすることも紹介されました。ただし,どのような運用でリリースを管理していくかなどの具体的な説明はキーノートではありませんでした。

クラウドベースのCIサービス「Wercker」

Mark Cavage氏は,4月にOracleが買収したクラウドサービスWerckerについても紹介しました。Werckerはアプリケーションのビルドやテスト,デプロイ,管理などを継続的に行うCI(Continuous Integration)環境を提供するクラウドサービスです。

分散システムに対応しており,システム内で発生している問題などをリアルタイムにモニタリングしてビジュアライズする機能などを備えています。キーノートでは,分散システム内で発生しているメモリリークを発見し,スタックトレースから原因となっているコードを特定するというデモが披露されました。

Werckerでメモリリークを検出するデモ

Werckerでメモリリークを検出するデモ

オープンソースのサーバレスプラットフォーム「Fn Project」

続いて登場したOracleのVice President of Product Development,Chad Arimura氏が発表したのは,Java対応のサーバレスプラットフォームを開発するオープンソースプロジェクトFn Projectです。Javaでシンプルにサーバレスアーキテクチャを実装することができるプラットフォームで,この日はじめて公開され,キーノートの途中でGitHubリポジトリがオープンになりました。

Oracle, Vice President of Product Development, Chad Arimura氏

Oracle, Vice President of Product Development, Chad Arimura氏

Fnプロジェクトは以下の3つの要素から構成されるそうです。

  • Fn Server - Function as a Serviceを実現する
  • Java FDK - JavaでFunctionを実装するためのSDK
  • Fn Flow - Functionのオーケストレーションを行う

キーノートでは,Fn Projectを用いて5つのFunctionからなるサービスを実装し,それをFn Serverで実行,Fn Flowで詳細な状態を確認するデモが紹介されました。

Fn FlowでFunctionの状態を監視

Fn FlowでFunctionの状態を監視

ついにリリースされたProject Jigsaw

キーノート後半で,満を辞して登場したのはJava Platform GroupのChief Architectであり,Java 9のスペックリードでもあるMark Reinhold氏です。

Oracle, Java Platform Group, Chief Architect, Mark Reinhold氏

Oracle, Java Platform Group, Chief Architect, Mark Reinhold氏

Mark氏は,Java 9のリリースにおいて最も重要となったモジュラ化を実現する技術,そして,開催直前にリリースされたばかりの「Project Jigsaw」について,デモも交えて詳しく解説しました。Project Jigsawは,単に新しくモジュールの仕組みが導入されたというだけでなく,既存のJava APIのすべてがこれまでのモジュール方式に切り替えられた極めて重大で,大きな修正を伴うアップデートです。

Java SE自体も細かなモジュールの集合体として再定義されたため,今後のJavaアプリケーション開発はモジュール単位でのクラス構成が前提になるということです。たとえば,Java SE APIは下図のような形に分割されました。

Java SE APIのモジュール構成

Java SE APIのモジュール構成

矢印が依存関係を示しており,java.baseがベースモジュールになります。クラスの依存関係が明確になり,より詳細なアクセス権管理ができるようになったことに加えて,自分のアプリケーションに不要なモジュールはロードする必要がなくなったため,アプリケーションのサイズを小さくできるというメリットもあります。

APIドキュメントも更新されてモジュール単位で閲覧できるようになったほか,モジュールの依存関係を表すグラフが自動で生成できるようになりました。

一部の非互換性が残されているものの,すでに主要なフレームワークやライブラリの多くがモジュール機能を含むJava 9に対応しているとのことです。

長い道のりでした

長い道のりでした

将来のJavaに向けた4つのプロジェクト

最後に,OracleのJava Language Architect,Brian Goetz氏が登場し,将来のJavaの新機能として検討されている4つのプロジェクトに言及しました。

Oralce, Java Platform Group, Java Language Architect, Brian Goetz氏

Oralce, Java Platform Group, Java Language Architect, Brian Goetz氏

Project Panamaは,先述の通りネイティブコードやネイティブデータにおけるJVM上のデータの枠組みを再構成するプロジェクトになります。Project Valhallaは,Valueオブジェクトの導入やプリミティブ型のGenericsの導入などを目指すプロジェクトです。

Project Amberは,ローカル変数の型推論やパターンマッチの導入などを検討しているプロジェクトで,分かりやすく表現するとJavaで「var」を使えるようにするというものです。その他に,Enum型の拡張や,左辺へのLambdaの適用などが検討されています。Amberは早ければ次期アップデートとなる2018年3月のリリースに含まれる予定とのことです。

Project Loomは最近提唱されたばかりのプロジェクトで,Javaに軽量スレッドであるFiberを導入しようというものになります。

このように,Java 9のリリース直後ではありますが,Javaはまだ進化を続けようとしています。リリースサイクルが変更されたということもあり,今後の発展が楽しみです。その一方で,Oracleおよびベンダー各社にはユーザのJava 9へ移行をどこまで促進できるかという大きな課題も残されています。

キーノートでは,上記の他にSpotifyによるマイクロサービスアーキテクチャ実装の事例や,KubernetesとJavaの組み合わせによる分散システム基盤の構築例などが紹介されました。Kubernetesについてはコンテナやマイクロサービスと関連してOracleが注力していることが発表されたばかりであり,Java方面でも連携を強めていくことが強調された形と言えるでしょう。

JavaOne 2017
https://www.oracle.com/javaone/

著者プロフィール

杉山貴章(すぎやまたかあき)

有限会社オングス所属。Javaやシェルスクリプトによるソフトウェア開発を手がけるかたわら,プログラミング関連書籍やIT系雑誌記事,ニュース記事などの執筆などを行っている。著書に『正規表現書き方ドリル』(2010年,技術評論社),『図解クラウド 仕事で使える基本の知識』(2011年,技術評論社)などがある。

バックナンバー

Java 9のその先へ~JavaOne Conference 2017レポート

コメント

コメントの記入