RubyKaigi2024 速報記 Day2

はじめに

こんにちは、相生です。Day2です。今日もRubyKaigi速報記をやっていきますが、眠い上見たいセッションがたくさんあり、Afternoon breakにはRBSKaigiがあり、夜はDrinkupとKaraoke*1なので結構へろへろの予定です。

Leveraging Falcon and Rails for Real-Time Interactivity

インターネットの歴史からRubyの非同期の話へつながっていく様がとても自然でした。Rubyのasync, 2017年で思ったより最近なんですね。 実装されたゲームの解説がとても丁寧で英語でもやんわり分かったような気がします……気がするだけ。*2Matzが壇上でやってみていて、かなり早くGameOverになっていて良かったです。

Community-driven RBS repository

今日は型の話がたくさんあります。すごい。rbs_railsの開発者であるpockeさんの発表です。gem_rbs_collectionという、gemの型を置いておく場所のマージ方法に苦心していて*3、最近は一定条件下で自分でマージできるようになった。という話でした。

その他、Railsの型定義やRailsアプリへのアプローチを考えてくれる人を募集していることなども触れられており、貢献できる部分では貢献していきたいなという感じがします。

ちなみにpockeさんも推しcommitterです。

Embedding it into Ruby code

RBSをrbファイルの中に書けるようになる、rbs-inlineの紹介です。コードに含まれるYARD記法のようなRBS情報から、rbsファイルを生成してくれます。これによってファイルが分離してメンテナンスが面倒だった問題が解消されるはずです。

一方でまだ記法が不十分で書けるものに限界があること*4、複数の引数があったときに書き方が悩ましいことなどを問題点として挙げられており、まだどういう方向に成長していくかも気になるプロジェクトでした。

Unlock The Universal Parsers: A New PicoRuby Compiler

Day0にお話させてもらったhasumikinさんの発表です。元々PicoRubyの話はしないよ。と伺っていましたが、Parserの話なので聞きに行きました。

今までのPicoRuby(と、mruby)はそれぞれmatzとhasumikinさんが書いていたものを使っているらしいのですが、せっかくいいプロジェクトがあるので使おう!ということでPrismとLrama-gen parserを使うことにしたようです。

PicoRubyは想定している環境が特殊なのでメモリ消費量を気にする必要があるらしく、Lramaを使うにあたって様々な依存を外す必要があったそうです。大変そう…………

ちなみに私のやりたいなと思っているPicoRuby動作環境は、もっと余裕のある環境なので何も考えずに開発できると思うよ、とhasumikinさんから言われています。やったー

RBSKaigi

soutaroさんがランチタイムに集まりませんか?と言ってくれていたんですが先約があったのでafternoon breakに移動してもらい、RBSトークをしました。14人くらい集まっており、去年のKaigi on Railsで突発的に行われたRBSKaigiから倍くらい増えていて熱量の高さを感じました。

afternoon breakの40分はsteepやrbsの使い方やworkaround, rbs_railsの貢献について、LLMでのアプローチなど様々な話題が交わされており、最後には共同主催をしているasakusa_bashi.rbsの案内もさせてもらいました。Kaigi on Railsから始まった集まりだったからか知らない人も何人かいて、この機会に周知出来てとてもよかったです。

Good first issues of TypeProf

型推論をしてくれるtypeprofへの貢献方法を紹介している発表です。TRICKを開催したり、変なコードを書くのに定評があるmameさんが話されました。*5

typeprofを使うためには何をしたらいいか、どういうことをすると壊れるので対処はこうするといいよ、という解決方法、typeprofの実装概要について今まで以上に丁寧に紹介されていました。これは触ってみる人すごく増えたんじゃないかな……

後半はtypeprofのどういったところからなら貢献をしやすいか、というのが紹介され、シナリオのknown-issuesだけでもいいよと言ってくれたのはとても気軽にcontribute出来そうな雰囲気がありました。本人がそう言ってくれると気が楽になるのでcontributeしがち。

私もその場でtypeprofをforkしてcloneしたのでKaigi後や合間に触ってみようと思います。

LT

いつもの。今回は銅鑼をぺんさんが叩いています。ごわ〜ん

色々おもしろい発表があるんですが、それをやってるとDrinkupやKaraokeにいけなくなっちゃうので諦めます。いつもの金子さんの早口Parser話とか、Rubyでお絵かきをする話とか、RuboCopに自分のgemが入れられた話*6とかがありました。みんな時間余らせてなくてえらいなあ……と思っています。

おまけ

今日のお昼です。RubyKaigiで仲良くなったお友達とご飯に行きました。夜はバーをやっているようです。

Bar Gold Dust

*1:RubyKaigiには川で酒を飲む文化とカラオケに行く文化があります

*2:ゲーム実装周りはDay0のときの会話と関連があるのでコードを読もうと思っています。

*3:レビューの難しさやそもそものレビュワーの選定、レビュワー自身の忙しさなど

*4:これはRBS自体もそうなので、今後に期待したいところ

*5:ノベルティによくmameさん謹製変なコードが印刷されています

*6:いい話!