Fight the Future

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

JVM Language Summit 2018に参加しました

2018年7月30、31日にオラクルのサンタクララオフィス(つまりあのデータベース型の建物ではない)で開催された、JVM Language Summit(通称JVMLS)に参加しました。

http://openjdk.java.net/projects/mlvm/jvmlangsummit/

f:id:jyukutyo:20180801095926j:plain

JVM Language Summitとは

The JVM Language Summit is an open technical collaboration among language designers, compiler writers, tool builders, runtime engineers, and VM architects

「JVM Language Summitは言語設計者、コンパイラ作成者、ツール作成者、ランタイムエンジニア、VMアーキテクトでのオープンな技術的コラボレーションです。」

JVMそのものの最新動向やデバッグなどのツール、JVM上で動作する言語などについて、Java/JVM界のトップや凄腕開発者が多く集まるイベントです。参加者は"About 100–120 attendees are expected"と、非常に小さい規模で開催するのが特徴です。

f:id:jyukutyo:20180731005014j:plain

2008年以降セッションはすべて録画公開されています。今年ももうすべて公開されています。以下リンクです。

www.youtube.com

なお、今年はJVM言語(ScalaやKotlinなど)のセッションはありませんでした。

参加してどうだったのか?

最高でした!いやほんと最高でした。

JavaOne(現Oracle Code One)は商業的要素がありますが、こちらはまったくなく純粋に技術的内容のみです。タイムテーブルはこうでした。

f:id:jyukutyo:20180803135906j:plain

セッションの間にワークショップがあり、こちらはトピックについてQ&Aからオープンな議論が始まるといったものです。少人数なので、聞きたいことがあれば休憩時間に直接聞きに行くこともできます。

内容もJVMの最新動向ばかりで、JVMに(詳しく)なりたい僕にとってはたまりませんでした。しかしそれゆえ内容は(僕のレベルでは)とても難しく、なるほどとはなるもののその理由がまったくわからないことも多くありました。

JOnsenで一緒だった人も当然来ており、また話すことができました。

JOnsen?という方はこちらを。

www.sakatakoichi.com

バイトコードがおもしろくなってきそうです。condy(Constant Dynamic)やcindy、mindy、Project Valhallaでのvdefaultやwithfieldといろいろ出てきて楽しいですね。

Project ValhallaもEarly-Access Buildが出ました。これは"L-World Value Types"の最初の実装です。実はValue Typesは以前にも実装提案が出ていました。このときは"L-World"(今までのJavaの記述子であるLタイプ)ではなく、新しくQタイプという記述子を作り実装していました。

www.infoq.com

この方針はリセットされ、Lタイプでの実装となって進められています。バイトコードのオペコードはvdefaultとwithfieldが追加されます。

Project Loomも実装が公開され、試せます。一緒に参加していた、chiroitoさんがすでにブログに動作方法をまとめてくださっています。

chiroito.hatenablog.jp

LT、ライトニングトークも当日申し込みであります。僕も、3年以内にLTというのを目標にします。

f:id:jyukutyo:20180801095342j:plain

OpenJDK Committers’ Workshop

JVM Language Summitの2日間に続けてOpenJDK Committers’ Workshopというのも同じ場所で開催されました。

http://openjdk.java.net/workshop

私は参加していません、というよりも参加する資格がありませんでした。こちらはさらに小規模で、OpenJDK開発に実際に関わっている人のみ参加できます。日本からも数名参加されています!来年は僕も参加できるよう、OpenJDKに貢献します!

f:id:jyukutyo:20180801095418j:plain