2016年のJavaはどこに向かう? 標準化の最新動向、開発手法のトレンドを見る

Oracle Java & Developers編集部
2016-02-03 11:00:00
  • このエントリーをはてなブックマークに追加

「より早く、スピーディな開発」を指向するトレンドは、Javaの標準化や開発手法にも大きな影響を及ぼしつつあるようだ。JavaOne 2015のトピックも交えて、それらに関する最新の動向を概観してみたい。

 今日、世界中のJava開発者が、言語仕様や機能の面で大きく生まれ変わったJava SE 8/Java EE 7の習得と活用に取り組んでいる。その一方で、最新の開発トレンドやテクノロジーの発展、そしてビジネス・ニーズを取り込み、JavaおよびJava開発の世界は引き続き進化を続けている。その方向性は? 今年、本誌サイト読者は何に注目すべきか? 2015年10月に米国サンフランシスコで開催された「JavaOne 2015 San Francisco」における発表内容および注目トピックも交えて、日本オラクルの伊藤敬氏(Fusion Middleware事業統括本部 シニアマネジャー)が解説する。

企業もJCPへの参加費が無料に? コミュニティが一体となってJavaを作るための体制整備が進む


日本オラクル Fusion Middleware事業統括本部 シニアマネジャーの伊藤敬氏

 1995年登場したJavaは、昨年、20歳の誕生日を迎えました。それを記念して盛大に開催されたJavaOne 2015 San Franciscoでは、基調講演で今後の開発ロードマップが示されたほか、会期中に実施された多数のセッションからJava開発の世界的な潮流を伺い知ることができました。ここでは、それらの中から主な話題をピックアップして紹介します。

 まずJavaOne 2015の基調講演で報告された内容を基に、Javaを巡る現在の状況を整理しておきましょう。ラムダ式が追加されるなど言語仕様が大きく変わったJava SE 8のリリースから約2年が経過する中で、Javaに対する開発者の関心は再び大きく高まっています。全世界のJava開発者の数は1000万人を超え、今日もさまざまなデバイスへのJavaの実装が進んでいます。

 Javaコミュニティの活動も活発化しています。全世界のJavaユーザー・グループ(JUG)の数は2010年と比較して104%増加し、Java Community Process(JCP)に参加する非営利団体の数は2014年から14%増え、OpenJDKのコミッターを務める開発者の数も2010年と比べて136%増加するなど、Javaの標準化や開発にかかわるコミュニティ/開発者の数は大きく増えました。国内でも、以前から各都市でコミュニティが形成されていますが、活動が活発化し、コミュニティの数も増加してきています。東京を拠点とする「日本Javaユーザーグループ(JJUG)」や関西地区を中心に活動する「関西Javaエンジニアの会(関ジャバ)」に加えて、札幌などに新たなJavaコミュニティが誕生しています。


JavaOneは、社会人だけのイベントではありません。小学生から高校生までを対象にしたハンズオン・プログラム「JavaOne Kids」も併催され、450名を超える学生がIoT(Internet of Things)やロボット操作をテーマにしたプログラムの開発に取り組みました。同様のプログラムは日本でも実施していますので、ぜひ多くの学生さんに参加していただきたいですね

 コミュニティの動きが活発化していることを受け、JCPでは参加枠をさらに拡大することが議論されています。その一環として検討されているのが、「コミュニティのみならず、企業の参加障壁も低くする」ことです。これまで、個人とJUGおよび非営利団体のJCPへの参加費は無料、企業など営利団体の参加費は年間5000ドルとなっていましたが、これを無償化することが決まりました。現在、JSR 364としてルール化されようとしていますが、すでに確定事項であるため、今、加入を申請しても、企業の場合は会費が免除されます。この機会に、ぜひJCPへの参画をご検討いただきたいと思います。

 こうして、個人からJUG、非営利団体、そして企業が同じ立場でJavaを作っていくための体制がより整いつつある一方で、JavaおよびJava開発のあり方も、さらに大きく変わろうとしています。これについて、次の4つのテーマを通して見ていきましょう。

  • Java SEのロードマップ
  • Java EEのロードマップ
  • Java開発におけるDevOpsの潮流
  • マイクロサービス・アーキテクチャ

Java SE 9は新たにモジュール機構が導入され、2016年9月にリリース予定

 Java SEの現行バージョンであるJava SE 8については、予告どおり定期的にアップデート・リリースが公開されています。それに続く次期バージョンのJava SE 9は、2017年3月23日のリリースを目指して開発が進められていますが、このバージョンではアーキテクチャそのものが大きく変わります。度重なる機能の追加や拡張によって巨大なプラットフォームに成長したJavaを、現状の「モノリシック(一枚岩)」な構造から「モジュール型」の構造に移行しようというのです。


※クリックすると拡大画像が見られます

 Java SE 9のモジュール機構はOpenJDKにおいて「Project Jigsaw」として開発が進められたもので、JCPではJSR 367として検討が進められています。このモジュール機構により、Javaプログラムの構造は従来とは大きく変わります。ご存じのとおり、現状、Javaプログラムの構造は「パッケージ」によって規定されていますが、Java SE 9では、その上位に「モジュール」が導入されるのです。


※クリックすると拡大画像が見られます

 そして、このモジュールの中で、「外部に対して、どのパッケージを公開するか」といったアクセス制御をモジュール定義ファイル(module-info.java)で定義することが可能となります。モジュール定義ファイルでは、「export」キーワードを使って外部に公開するパッケージを指定し、モジュールを参照する側のプログラムでは「requires」キーワードによって必要なモジュールを指定します。


※クリックすると拡大画像が見られます

 これにより、あるモジュールから別のモジュールを参照した際、参照先モジュールで公開指定されたものだけが参照可能となるわけです。

 Javaでは、これまでパッケージが固定化されていたため、プログラムの開発/実行に際しては不要なパッケージまでプログラムに組み込む必要がありました。しかし、Java SE 9以降では、必要なパッケージだけを組み込むことで、プログラム・サイズを削減し、より高いリソース効率で実行することが可能になるのです。

 また、モジュール機構の導入に伴い、Java SE 9では既存APIの相関関係も整理されます。


※クリックすると拡大画像が見られます