Fight the Future

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

JavaOne 2017 2日目 #JavaOne #j1jp

Java Keynote

昨年のキーノートでは"火星の悪夢"があったことをご存知の方も多いでしょう。Javaと関係のない火星の話が1時間もあるという悪夢のキーノートでした。 今年は、そつなくまとまっていて合格点はある気がします。3年連続3度目のJavaOneでしたが、一番キーノートとしてよかったです。 内容はすでにレポートされていることが多く、Java SE 9のリリース、EE 8のリリース、SEのリリースサイクルの変更、EEのEclipseファウンデーションへの寄贈といったことがメインでした。 ただ、まったく知らなかったのは"Fn project"です。Java対応のサーバレスプラットフォームとのことですが、まったく知らなかったので何もわかっていません。 Publckeyのレポート記事を読まれるとよいでしょう。

www.publickey1.jp

今後はProject Valhalla、Project Panama、Project Amber、Project Loomだよということでしたが、Loomはまったく知りませんでした。こちらにProposalがあります。

http://cr.openjdk.java.net/~rpressler/loom/Loom-Proposal.html

"Fibers and Continuations for the Java Virtual Machine"ということです。 `` Valhalla、Panama、Loomは詳細は振れられず(ここの担当のBrian-sanが出てきたのがもう終了時間近くで、巻きになったと思われるここは台本通りとのことです。Java Championさくらばさんから教えていただきました)、Amberの中でローカル変数の型推論とパターンマッチを紹介されました。パターンマッチについてはInfoQがBrian-sanにインタビューした記事があります。

www.infoq.com

こちらの記事は、私(公式なInfoQ翻訳者)の方で翻訳を進めております。今しばらくお待ちください。なお、キーノートではパターンマッチでdeconstructするコードも出ていました。decnstructした結果をvarで定義した変数で受ける、という感じです。

Twitter’s Quest for a Wholly Graal Runtime [CON5989]

今日一番驚いたセッションです。私がGraal自体に大変興味を持っていて、直接的な内容ではないだろうと思いつつ聞きました。ところが、TwitterはすでにGraalを本番環境で運用しているとのこと!もちろんバージョン1.0にもなっていませんし、本当にびっくりしました。Graalでのパフォーマンス向上によるサーバコスト削減が目的とのことです。

Shenandoah 2.0: Now That We’ve Gotten the GC Pause Times Under Control, What’s Next? [CON6108]

GCアルゴリズムのShenandoahです。3年連続Shenandoahは聴いてます。MLを追いかけたりしていないので知りませんでしたが、1.0はリリーズ済みでした!RHELFedoraで、-XX:+UseShenandoahGCをつけると適用できます。ただし実験的立ち位置ではあるので、ご注意ください。ベンチマークでのG1との比較では、合計の停止時間と実行回数は若干増えるが平均と最大停止時間はかなり短くなるという結果でした。つまり、ごくごく短い停止が頻繁に起こるという感じでしょう。

その上で、2.0の開発が進んでいるとのこと。Incrementalにさせてさらなるパフォーマンス向上となるようです。

余談

JavaOneキーノート中、ちょうどチーフアーキテクトのMark Reinhold氏が話しているときに、第3子が誕生しました!予定日が近いのでJavaOne期間中に生まれる確率は元々高かったのですが、その通りに生まれてきました!