2013年以降のJavaについて(1)


2012 年の JavaOne を振り返って Java の今後を復習してみます。

現在の最新バージョンは 2011-07-28 にリリースされた Java 7 です。
このバージョンで注目していたのは以下のものでした。

  • invokedynamic (JSR 292)
  • fork/join framework (JSR 166y)
  • project coin

次の Java 8 では以下のようなものが予定されています。

  • Project Lambda (JSR 335)
  • Project Nashorn
  • Date/Time API (JSR 310)
  • Type Annotations (JSR 308)

個人的には何といっても Project Lambda に注目しています。これが使えるようになると関数型言語のように Collection ライブラリを操作できるようになり、非常に簡潔にコードが書けるようになります。

Project Lambda で導入される Lambda 式を使うと 2012年に卒業した学生の得点の最大値を求めるというコードは以下のように書けます。

students.filter((Students s) -> s.getGradYear() == 2012)
 .map((Students s) -> s.getScore())
 .max();

普段は Scala でコーディングしているので特に珍しくもないですし、関係ないといえばないんですが (笑)。

リリース時期については JavaOne Tokyo 2012 の頃には 2013年夏リリースといわれていましたが、本家 JavaOne で 2013年後半リリースに訂正されたようです。

Java 9 で予定されているのは以下のものです。

  • Project Jigsaw
  • unified type system
  • self tuning VM

Project Jigsaw は JavaOne Tokyo 2012 時点では 8 に含まれる予定でしたが 9 に延期されたようです。Jigsaw については、依存関係を解決するのは Maven や ivy で出来ているので今更な感じを受けなくもないですが、標準機能でサポートすることや標準だからこそ出来ることに意味はあるんでしょうね。ちなみに 9 のリリースは 2015年を予定しているようです。
最後に 10 以降のどこかに入るとされている Project Sumatra を軽く紹介しておきます。Project Sumatra は Java から GPU を直接操作出来るようにするプロジェクトです。OpenCL みたいなものといえばわかるでしょうか。非常に楽しみなプロジェクトではあるんですが、問題なのはリリース時期ですね。Java のリリースサイクルが 2年単位なので…。早くとも 2017年て…。5年後ですよ。待ってられない。


This entry was posted in Java, プログラミング. Bookmark the permalink.