Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

『みんなのJava』でGraalVMの入門ガイドの章を書きました #minjava

2020年3月13日に、『みんなのJava OpenJDKから始まる大変革期!』という書籍が出ます!私は、第5章で、GraalVMの入門ガイドとなる記事を書きました。

gihyo.jp

GraalVMの章について

この書籍は、現時点でのJavaの最新動向を、とくに今Javaでアプリケーションを構築しているJavaエンジニア向けに解説することを目的としています。そのため、昨年2019年に章立てを考えたときには、GraalVMは少しそこからずれた印象も、自分自身ありました。ただ、執筆している内に情勢は変わり、GraalVM、とくにネイティブイメージの部分は、本番環境で適用できる一歩手前まで来ている状況となりました。それは、ネイティブイメージをサポートする、QuarkusやMicronaut、Helidonといった最新Javaフレームワークが出てきたこと、FaaSでJavaを使う際にネイティブイメージがマッチすること、などがあります。私個人の見方では、GraalVMは、Javaエコシステムにおいて、ここ数年でもっともインパクトがあるプロダクトの1つと考えています。

私自身は、GraalVMを(この名前がつく前の)2017年から追いかけてきました。そして、GraalVMのネイティブイメージ生成機能だけにスポットライトが当たっている今の状況を、かなり複雑な気持ちで見ていました。そこで、昨年2019年は、GraalVMというプロダクトの全体像を日本各地で解説する機会をいただけました。同時に、その2019年の春に、きしださん(@kis)から声をかけていただいて、『みんなのJava』にGraalVMの章を執筆することになりました。

GraalVMの章を書くにあたり、心がけたことは、次のことです。

  • GraalVMの使い方だけを書くのではなく、GraalVMの概要を描く

使い方を書くだけだと、淡々とした内容になりますし、書籍ではなくWebでも多く見つかる内容となります。書籍はボリュームがありますので、しっかりと概要を描いて、ソフトウェアエンジニアの方が将来GraalVMを採用する現場に入ったとき、『みんなのJava』にあったアレを、今回はこの用途で使うんだなー、となればいいなと考えて書きました。

  • 机上の空想ではなく、GraalVMと現場をつなぐ

GraalVMは新しいプロダクトである上 に、その計画が壮大であるため、それを書くだけだと多くの方の今の業務につながらないものとなってしまうと感じました。そのため、ワールドワイドでの適用事例を紹介したり、今でもどういったことに使えるか、という節を加えました。

  • 私(を含めたそう多くはない人数の方)にしか書けないであろうことを書く

GraalVMでJavaアプリケーションのネイティブイメージが作れます!起動が早いです!ということは、インパクトがありますし、そこにスポットライトが当たるのは、当然でもあります。しかし、実際にはネイティブイメージ生成機能は、最後にGraalVMに追加された機能です。GraalVMの概要や本質をつかむには、ネイティブイメージ機能をいったん除いて考える必要があります。そして、開発の経緯や論文、海外カンファレンスのセッションといった、さまざまなソースを複合して解釈をする部分もあります。こうした内容を、書籍にすれば、多くの方の労力を削減できる、価値あるものとなるのではと考えました。

もし、役立たない文章となっていたなら、すべて私の力不足(技術力、執筆力など)です。

『みんなのJava』の読みどころ

Java 9でのJavaプラットフォームモジュールシステムの導入と、Java 10以降の半年ごとのリリースサイクルへの変更で、Javaの大きな変化とその変化のスピードに、びっくりされているJavaエンジニアの方も多くいらっしゃいます。『みんなのJava』は、200ページ未満です。すぐに読めて、それでいてJavaの変化に一気に追いつける本だと思っています。

『みんなのJava』は、Javaの言語仕様の変化についてだけではありません。一時、Java有償化と誤解を生んだ部分も、JDKディストリビューションの章でまとまっており、有償化ではないこと、そして、自分たちのプロジェクトでJDKをどう選択すればよいのか、という知識を得られます。さらに、Java EEからJakarta EEへの変化、MicroProfileのことという、EE部分の章があります。Micronaut、Quarkus、Helidonといった、Javaの最新フレームワークについてもまとまっています。そして、新しいVMであるGraalVM、です。

このように、コンパクトな書籍に、ここ数年のJava関連の変化がまとまっています。ぜひお買い求めいただければ幸いです!