RubyKaigi 2019 福岡に参加した
2019-05-11
Tech福岡で行われたRubyKaigi 2019 福岡に参加した。
自分の発表について
今年は登壇者で、Ovtoの話をした。詳細はのちに上がるであろう動画を見てほしいが、現時点の資料としてはスライドのPDF版がある。プレゼンターノート付きなので概要は分かるかもしれない。
今回の発表の裏テーマとして「文章で伝えにくいOvtoの良さをライブコーディングで伝えたい」「初心者から上級者まで何かしら得るものがあるようにしたい」というのがあり、いずれも(個人的評価では)達成できたように思う。
得るもの、というのは別に知識に限らなくて、「やる気が出た」みたいなものも含む。というか知識そのものはインターネットで手に入る時代なので、他人の熱に触れてやる気がでることこそがカンファレンスの大事な役割だと思っている。
セッションについて
処理系寄りの発表を主に見ていた。
Pragmatic Monadic Programing in Ruby
- RubyでHaskellのdo記法のようなものを無理やり実装する話。これもう構文木マクロでは、と思ったのだが、入力は確かに木だけど出力が文字列らしいので、「マクロは入れない」というまつもとさんの意思にはぎりぎり反していないようでセーフ(?)。
RubyVM::AST.of
がprocを引数に取るので、自然と「ブロックの中だけマクロが有効になる」という形に誘導されるのが良いですね(マクロの適用範囲が不明瞭だと読むのが大変なので)。
- RubyでHaskellのdo記法のようなものを無理やり実装する話。これもう構文木マクロでは、と思ったのだが、入力は確かに木だけど出力が文字列らしいので、「マクロは入れない」というまつもとさんの意思にはぎりぎり反していないようでセーフ(?)。
Compiling Ruby to idiomatic code in static languages
- ハードウェア上のゲームエンジンみたいに速度を必要とするプログラムはCとかで書く必要があるが、Rubyを使いたい、さてどうするか。
- rb2nimという、RubyからNimに変換するツールの発表だった。Nimはマクロを持ち柔軟性が高くて高速な静的型言語。
- "idiomatic"というのがミソで、ふつう言語変換器って生成後のコードは人間が読めないことが多いんですが、そこをなるべく綺麗なコードにしてくれると。
- すると、変換がうまく行かなかったときに人間が読んで直すという選択肢が取れる。実際、自動変換で足らない部分をパッチとして持っておく機能がある模様
- rubocopをrb2nimで変換したもの(auto-rubocop)があり、ほぼ自動で変換できていて、2〜11倍速いと言っていたかな。(parser gemとかも変換したのかは聞き取れなかった)
A Bundle of Joy: Rewriting for Performance
- gelという、Bundlerの爆速な代替を作ったという話。Railsコミッタの人。
- Bundlerとどのようにすみ分けるのかと思ったけど、READMEを読むと「うまく高速化できたらBundlerにもシェアしたい」「が、高速化の実験をするには新しい小さなコードベースの方が便利」ということのようだ。
-
- アーロンさんの発表、ここ数年は時間割が噛み合わなくて見れてなかったのだけど、また日本語が上手くなってた。"Good Locality"みたいな時々入る英語で思わず(発音いいな…)と思ってしまうくらい。
- いつも性能改善とかの技術度高いテーマなのだけど、図やアニメーションで誰にでも分かりやすくなっててすごいと思う。今回のOvtoのスライドもそれを見習おうと思って図を描きました。
-
- RubyはInteger+#も再定義できるので最適化が難しいのだけど、「そういう変なことをしない」という前提をおくことで定数畳み込みとかの強い最適化をやるという話。
- まだいくつかの最適化しか実装されてないので性能は出てないけど、productionに適用してるって言ってたような。すごい。
- あとBootsnapに噛ますことができるので、Railsユーザなら意識せずに使うことができそう。賢い。
-
- ujihisa枠。生で見れてよかった。
- 当日は体調が悪そうだった。なんていうか、お互い無理が効かない年齢になりつつありますねえ。
Optimization Techniques Used by the Benchmark Winners
- 激ヤバキーノート。
- スライドのタイポグラフィーがかっこいいのだけど、HTMLでできててびっくりした。
食事について
今回はわりと一人でうろうろしていた。
移動について
メルチャリが楽しかった。メルカリがやってるシェアサイクルで、専用の赤い自転車を特定地点間で自由に乗り回せるというもの。料金も安いし、何より知らない街を自転車で走るのが最高に楽しい。
次回について
次回は長野の松本とのこと。
私の講演という意味では次は6末のとちぎRubyKaigi08が決まっている。内容はいくつか候補があるが検討中です。お楽しみに。