Devoxx Belgium 2019 - Day 3

LINEでは年に1回の海外カンファレンス補助があるので、ベルギーのDevoxxに来てます。

DevoxxはヨーロッパのJavaコミュニティで、ロンドンやパリなど各地でカンファレンスを行なっていますが、ベルギーが最大です。
毎年、Javaのびっくり発表がDevoxx Belgiumというイベントであるというのを認識していて気になっていたのですが、今回初めて来てみました。

今日はConference Daysの初日でキーノートから始まりました。
https://devoxx.be/wednesday-schedule/

今日聞いたのはキーノートの他に次のセッションですが、Spring BootをGraalVM Native Imageで動かすセッションが一番おもしろかったです。

KeyNote

Conference Daysの初日ということで、キーノートから始まります。
キーノートは3つのセッションにわかれていました。
ところでDevoxx Belgiumは映画館で行われていて、各部屋300-500人くらい入る感じですが、キーノートで一気に数千人入るような部屋はありません。なので、一番大きい部屋でキーノートが行われて他の部屋に配信される感じになっています。
この部屋には話してる人いませんね。
f:id:nowokay:20191107104927j:plain

この部屋にいました。
f:id:nowokay:20191107105527j:plain

Welcome to Devoxx: practical info

最初のキーノートはDevoxxについての説明です。
Devoxxはヨーロッパを中心に活動するコミュニティで、年間21のイベントをやっていて、先週がウクライナで来週がモロッコらしい。
その中でも最大なのがこのベルギーで、今年は3300人の登録とのこと。去年3500人でめっちゃ混んでたから3300人で打ち止めたということらしい。
そして去年は4ヶ月でsold outだったのが、今年は10日でsold outだったとか。来年はもっと早くなる気がする。
抽選にするかどうかということを話していました。

The Hitchhiker’s Guide to Diversity (Don't panic!)

2番目のセッションはダイバーシティについて。
なのですが、途中で配信が切れてしまった・・・
f:id:nowokay:20191107102256j:plain

「ゴスリンが話してくれたんだけどつないだ瞬間切れた」とか冗談を言ってましたが、4K対応したら電源が追いつかなくて落ちたということらしい。

Qualities of a Highly Effective Architect

よいアーキテクトがどうのというセッション。
パワポアーキテクトになってはいけない、という言葉が印象的
f:id:nowokay:20191107105607j:plain

Abstractions Without Regret with GraalVM

GraalVMのセッション。
だけどやはりNative Imageが中心になりますね。

今月出る19.3でJava 11をサポートするそうな。
f:id:nowokay:20191107110253j:plain

あとのSpringのセッションのほうが知らない情報でてたな。

Developing Java applications leveraging the Quantum Internet

JavaFXがんばってるJohan Vosさんの量子通信の話。 f:id:nowokay:20191107110931j:plain

途中で覗き見とかが難しいのでセキュアだと。
SuperpositionとかEntanglementとか量子の話をしたあと、スイッチとか入れるの難しいよねという話をして、ただスイッチ作れれば通信ができていいってことを話してました。
f:id:nowokay:20191107110759j:plain

そして、Javaでつくってる量子コンピュータシミュレータの紹介。
https://github.com/gluonhq/strange

Implementing a Simple JVM in Rust

RustでJVMを実装する話
f:id:nowokay:20191107111010j:plain

GCは実装してないということなので、unit256_tさんがRustで作ったJVMのほうがGCJITもあって実装が進んでますね。

会場への問いかけで、Rust使ってる人という質問には1/4くらいが手をあげてたのだけど、Rustをプロダクトで使ってる人という質問はだれも手をあげなかった。まあJavaイベントだからね。

簡単な実装をする上でのJVMのだいたいの仕組みというのがわかりやすくてよかった。
f:id:nowokay:20191107111239j:plain

あとはRustでの実装の説明 f:id:nowokay:20191107111355j:plain

Running Spring Boot applications as GraalVM native images

SpringをGraalVM Native Imageで動かす話
f:id:nowokay:20191107111701j:plain

Java Buildpack Memory Calculatorというのを紹介していました。メモリ使用量やクラス数から最適なオプションを計算してくれるユーティリティなのかな。
https://github.com/cloudfoundry/java-buildpack-memory-calculator
f:id:nowokay:20191107112021j:plain

Parallel GCはGraalVM EEに入るとか。
f:id:nowokay:20191107112545j:plain

Native Imageに必要な設定などはSpring Graal Nativeを見ればいいぽい
https://github.com/spring-projects-experimental/spring-graal-native

Spring Boot 2.2ではCGLIBやProxyを使わないようにできるので、native imageに優しくなっているらしい。すごい。
f:id:nowokay:20191107112748j:plain

あと、AOT用の工夫はJITでも有効だと言ってました。
相当がんばっとるな。
GraalVMチームと協力して開発をすすめているらしい。

Understanding Low Latency JVM GCs

G1GC、Shenandoah、ZGC、C4の説明のセッション。
f:id:nowokay:20191107113132j:plain

GCの使い分けのまとめ。しかし、ZGCはWindows対応するっぽいので、Windowsならってとこは変わりそう。
f:id:nowokay:20191107113455j:plain

しかし、話とともにちょっとずつ資料を表示するスタイルで疲れた・・・
GC使い分けとか、ちょっとずつ出されても・・・みたいな。

Evolving Java for the Serverless Era with Micronaut

Micronautのセッションなんだけど、初日に聞いたセッションの一部ぽいので途中退出。
f:id:nowokay:20191107113742j:plain

What's coming in Scala 3

ということでScala 3のセッションに。
f:id:nowokay:20191107113845j:plain

Scalaようわからんけど、楽しそうでした。

Meet & Greet in exhibition floor until 20h30

今日は会場でビールがでました。
ブロンド系なんだけど、銘柄まではわからず。ベルギービールを当てるのは種類が多すぎるし日本で飲みにくいものも多いので相当難しい・・・
f:id:nowokay:20191107113946j:plain

今日のビール

で、ホテルに戻って、気になっていたDuvelの看板がでている店に。
f:id:nowokay:20191107114330j:plain

ボトルかよ、という気持ちw
f:id:nowokay:20191107114242j:plain

そして、料理もない店でした。。。まあ4Eurでお釣りが来るくらい安くていいのだけど。ビールだけ出て料理は出ない店が結構多いふいんき

いつもどおりノンアルヒューガルデンを買って・・・と思ったら、ふつうのヒューガルデンだった。
f:id:nowokay:20191107114947j:plain

夜のアントワープ駅もきれい。
f:id:nowokay:20191107114621j:plain

聞かなかったセッション

ついでに、聞きたいけど裏番組だったりで聞かなかったのをまとめておきます。
Project Loom: Helping Write Concurrent Applications on the Java Platform

Quarkus why, how and what by Emmanuel Bernard

Java on ARM Theory, Applications and Workloads

Your Program as a Transpiler: Applying Compiler Design to Everyday Programming