RubyKaigi Takeout 2020
Day2 の感想
スケジュールは以下のように2つのトラックが並列で走っていました。自分は基本的に#rubykaigiA
に貼り付いていました。
最初の「Ruby Committers vs the World」はRubyKaigiでは定番のコンテンツになっているRubyコミッター同士のワイガヤの会です。コミッターの笹田さんがファシリテートしながらコミッター紹介や視聴者からの質問に答えていたりしました。やはり会場ほどの臨場感はありませんが、それでもオンライン越しでコミッター全員が一画面に並んで映って喋っている様子は壮観でした。
トークの内容はやはり静的型チェックが盛り上がっていました。個人的には「なぜ型宣言が別ファイルになっているのか」という質問に対して Matz が「理論的背景があるわけではないけれどRubyにおける型システムみないなものは抽象解釈の先にあると思っていて、十分に賢いコンパイラが未来にできたときに少なくともユーザレベルのコードにおいてタイププロファイラーみないなものが毎回動くことも含めてそもそも型を書く必要がないという未来はありうるんじゃないかとぼんやり思っている」と言っていたのが印象的でした。以前にMatzが「型を書きたくない」と言っていたのは知っていましたが、型を書かずとも十分に賢い実装が将来出てくるという期待もあるようです。
「Ruby Committers vs the World」はライブだったようですが、他のセッションは録画だったようです。面白かったのはセッション途中で YouTube Live のチャットで呟くと登壇者が答えてくれるときがあることです。これは本当に「オンライン」かつ「録画」ならではのメリットだと思いました。生のイベントだと疑問をもってもリアルタイムで質問できなかったりタイミングがなかったりしますが、チャットだと気軽に「質問風」に呟くことができて、運が良ければ登壇者が答えてくれるというゆるい感じでだいぶハードルが下がる気がしました。
さすが RubyKaigi だと思ったのは「#rubykaigiA」に関しては英語翻訳のトラックも用意してあったことです。もともとオフラインのRubyKaigiでは英語セッションも多く、日本語のセッション向けに英語への翻訳レシーバの貸し出しを行っていたので、国際カンファレンスとしてRubyKaigiの面目躍如だと思いました。ちなみに「Aaron Patterson(@tenderlove)」さんは日本語で発表して通訳もご自分でされてました(笑)。
個人的に一番おもしろかったのは三浦さんの「Ruby to C Translator by AI」でした。「AI」とは何かと最初はおもいましたが「Abstract Interpretation」のことでした。発表内容はMMCと呼ばれるmrubyのバイトコードをCのコードに変換して、手書きのCコード並みに早くなるというすごい技術でした。基本的な技術として「型プロファイリング」と「エスケープ解析」があり、抽象実行によってエスケープ解析をしてなるべくメモリをスタックに確保するようにするという話でなるほどと思いました。Ruby3に搭載されるタイププロファイラーはこの発表のMMCにインスパイアされたもののようで、今回の一番の「へぇ」でした。
RubyKaigi のノベリティ
ノベリティのショップもあり自分はTシャツを購入しました。色やサイズは自由に選べます。スペシャルな方は結構なお値段しますが、お布施的な値段なのかなぁと想像しました。
まとめ
新型コロナウィルスのせいで様々なイベントが逆境に立たされる中でRubyKaigi Takeoutが開催されたことは感謝の念に堪えません。オフラインでなかったことは確かに残念でしたが、オンラインイベントならではの良さもあり、非常に面白いイベントでした。来年は「三重」で開催されるそうなので、現地でRubyistに会える日を楽しみにしたいと思います。
(ちなみに動画のURLは スケジュールのところにありました。まだ限定公開ですが後々正式に公開されるのではと思っています。)