「Java SE 9」がいよいよ7月リリース。櫻庭祐一氏と吉田真也氏に注目ポイント、移行時の留意点を聞いた

Oracle Java & Developers編集部
2017-04-12 16:40:00
  • このエントリーをはてなブックマークに追加

ハードウェアの発展に追いつくために、Javaはこれからもっと進化する

──話題を変えて、お二人が今後のJavaに期待していることをお聞かせください。

櫻庭:Javaでやるべきことは、まだ沢山あります。特に“足回り”の部分ですね。最近はハードウェア技術がどんどん進化しており、CPUの作り方が変わってきたし、ネットワークは速くなるし、キャッシュの持ち方もCPUによって全然違うしといった具合に、ドラスティックに変化しています。その進化にソフトウェアが追いついているかというと、そうとは言えない部分が沢山あり、まだ旧来の作り方で何とか速くしようとしているケースが多く見られます。Javaの下のレイヤでハードウェアが進化しているとしたら、その上でやるべきことは数多くあるのです。Java SE 8/9でも、例えばStream APIでパラレルに動かせるようにするといった取り組みが行われていますが、まだ手つかずの領域も多いので、そうしたところに取り組んでいってほしいですね。

吉田:僕は言語やコンパイラに興味があるので、それに関連したテーマで言うと、例えばOpenJDKの「Project Valhalla」、「Project Panama」、「Project Amber」といったプロジェクトでは、ジェネリクスの型引数にプリミティブ型を書けるようにするとか、Value型をクラスっぽく書きつつも、メモリ配置はC言語の構造体のようにして効率化するとか、ローカル変数の型宣言を省略できるようにするとかいったことを検討しています。これらのプロジェクトの今後が楽しみですね。僕は引き続き、こうした面白いプロジェクトにかかわっていけたらと思います。

櫻庭:これらのプロジェクトの多くも、やはりハードウェアの進化に追随しようという試みなんですね。例えば、Value型も、その背景にはよく使うデータをキャッシュにまとめて置けるようにしようという狙いがあります。目的のデータがCPUのキャッシュに入っていない場合、メイン・メモリまで取りにいくと凄く遅くなるため、頻繁に使うデータはなるべくキャッシュに溜めておきたいのです。

 ソフトウェアとハードウェアは、どちらか一方が進化したら、もう一方もそれに追いついてといった具合に相互に影響を与え合いながら進化していくものです。Javaもハードウェア技術の進化に応じて、今後も変わっていくでしょう。

吉田:“さらに先のJava”という観点で言うと、研究レベルで取り組まれているものに面白い技術があります。例えば、OpenJDKの「Project Graal」というプロジェクトでは、JITコンパイラをJavaで書こうとしているんです。まだ研究段階ですが、Java SE 11/12の辺りでOpenJDKに取り込まれると面白いかなと思っています。

これからも新しい技術を追う面白さを楽しみつつ、共に学ぼう!

──いろいろ伺ってきましたが、ここで改めて、これからJava SE 9に触れるJava開発者の方々、そしてこれからJava開発者になる方々にメッセージをいただけますか。

櫻庭:これからJavaに取り組む皆さんは、とりあえずJShellを使うと面白いと思いますし、学習のハードルは確実に下がるので、「Javaは面倒くさそう」と思っていた方もぜひ試してみてください。

 また、Java開発のベテランの皆さんは、一緒に勉強しましょう! 新しいものが出ると、互換性の問題とか運用の問題とかいろいろ出てくると思いますが、それらがあったとしても、やはり新しい技術を追い続けるのは面白いですよね。その面白さを楽しみつつ、面倒くさい部分を共に乗り越えていければと思います。

──吉田さんはいかがですか? 特にこれから学ぶ方に向けて…

櫻庭:来年は新入社員なんだよね。同年代の人に言いたいことはない? というか、そもそも同年代の間でJavaって人気あるのかな?

吉田:Java SE 8がリリースされてからは人気が出てきましたよ。それまでは「Javaやってます」って言うと「辛くない?」って聞かれたりしたのですが(笑)、僕のPCにJava SE 8のベータ版を入れていたので、「もうラムダ式も使えるよ」って見せると感心されたりして。Java SE 9ではJShellが入るので、スクリプト言語みたいに簡単に書きたいというニーズにも、かっちり書きたいというニーズにも、どちらにも対応できる“ほどよい言語”になりつつあります。読者の皆さんが新入社員として入った会社でJavaを使うことになったら、ぜひポジティブな気持ちで取り組んでいただきたいと思います。これから学ぶ技術を好きになって取り組むのと、「何だかなぁ」と思いながら取り組むのとでは、成長のスピードが格段に変わると思いますし。

──今年も5月17日に東京で「Java Day Tokyo」が開催されますが、お二人はそれぞれセッションをお持ちになるんですよね?

吉田:僕はJShellに関するセッションを持たせていただく予定です。

櫻庭:私はJava SE 9全般について、新機能などのポイントを紹介するセッションを予定しています。

──楽しみですね。それでは、読者の皆さんとはJava Day Tokyoでお会いしましょう! お二人とも、本日はありがとうございました。

【5月17日に「Java Day Tokyo 2017」が開催!】

恒例のJava Day Tokyoが今年は5月17日に開催されます。例年、各セッションは早期に満席となりますので、参加を希望される方は下記リンク先よりお早めにお申し込みください。

  • イベント名:Java Day Tokyo 2017
  • 開催日:2017年5月17日(水)9:30〜20:00 (受付開始 9:00〜)
  • 会場:グランドプリンスホテル新高輪 国際館パミール(品川)
  • 参加費:無料
  • 詳細/参加申込み:こちらのWebサイトをご覧ください