RubyKaigi 2024 に参加しました

はじめに

5/16(水)~5/18(金) にRubyKaigi 2024 が開催されました。会場は沖縄県那覇市でした。

rubykaigi.org

今年も所属している「永和システムマネジメント」の支援でRubyKaigiに参加できたので記録としてレポートを残します。オフライン参加は3回目です。

今回も前日入りしました。那覇空港の手荷物受け取り所にRubyKaigiの広告があって見逃さず撮ることができました。

セッション

会場の入り口

@tompng さんのキーノートから始まりました。ひとりTRICKの作品には興奮しました。これが自分にできたら楽しいだろうなと思いました。来年にTRICKが開催されるので、自分もチャレンジしてみたいなと思うような内容でした。

@yui-knk さんのパーサの発表では、目指すパーサのマップが出てきて、この部分はこの方が実装してくれているなどチームで分担して目指すパーサができていることを感じました。 前回のRubyKaigiではわからないことが多かったですが、あらかじめ予習をしていたためパーサの大枠の話で迷子にならずに済みました。

@tagomoris さんのNamespaceの発表では、同じクラスだけど異なるメソッドを定義できるものと理解しました。自分が具体的に使う場面があるかわからなかったですが、将来にRubyに入ると目玉の機能になると思いました。

@ima1zumi さんのRelineの発表では、IRB の入力や表示を担っている Reline には機能が足りていないので追加していくという話でした。.inputrc でキーバインドをカスタマイズできることがわかったので、自分も .inputrc で IRB 使いやすくしてみたいなと思いました。発表のあった夜に、前から自分がやりたかったIRBの履歴検索のカスタマイズが .inputrc ではできなさそうだったので、.irbrc をいじってみました。*1

@soutaro さんのRBSの発表では、rbs ファイルに型定義を書くのではなくコード中のコメントで型定義を書くことが提案されていました。 rbs ファイルが不要になると rb ファイルと rbs ファイルを行き来する必要がなくなるのはよいと思いました。一方、コードの行数が長くなったり本来のコメントが埋もれてみづらくなる気もして一長一短だなと感じました。

@koic さんのRuboCopの発表では、前半はLSPで開発体験をよくした話、後半は将来的にPrismを使ってエラートレランスな構文解析を使う話がありました。 前半であった過度にLSPでオートコレクトされる話で、RSpec の fit が it に直されてしまうのは自分がお仕事で起きた問題でした。Kaigi 後に RuboCop RSpecAutoCorrect: contextual をデフォルトにする提案の issue を @ydah さんが立てられていました。*2

@S.H. さんのLTの発表では、初めてRubyのパーサにコントリビュートする話でした。 @S.H. さんのできることをやってみたということで、parse.y をルールを使って書き換えることで簡略化する Pull Request を作ったそうです。OSS の取り組み方として参考になりました。まず『Rubyのしくみ』で勉強をしたというがありましたが、自分も事前に読んでおくことで RubyKaigi の発表が理解しやすくなったと感じたので、いい本だなと思いました。

@junk0612 さんのIELRパーサジェネレータを実装した話は、パースアルゴリズムが色々出てきて関係性を整理するのが難しそうに思いました。LexerとParserを分けないScannerless Parserがこれまでと異なる種類のパースアルゴリズムということがわかりました。論文を見ながらRubyで実装したということで、論文を読む力が必要で大変だなと思いました。

後日セッションの感想を書いているとどんな話だったけというのが多かったので、すぐにメモを取った方がよかったなと反省しました。

イベント

ナイトクルーズ

Day0に所属している「永和システムマネジメント」主催のイベントでナイトクルーズがありました。2019の福岡のRubyKaigiに続いて2回目のナイトクルーズでした。定員の130名がすぐに募集が埋まっていてとてもありがたかったです。 自分は乗船前の受付でQRコードを読み取る係をしていました。

船では3階のデッキに出てゆったりと風景を楽しめると思っていましたが、あいにく大雨になってしまい景色を楽しむことはできませんでした。残念...。

参加された方はみなさん楽しまれていたようで嬉しかったです。

オフィシャルパーティー

Day1の夜はオフィシャルパーティーでは海辺にある施設の野外でBBQでした。大人になって久しぶりのBBQでしたし、開放的な場所で楽しかったです。 海の景色もとてもよかったです。一緒のテーブルになった初めての方とお話もできてよかったです。

アフターパーティ

Day3の夜は mov さん主催のアフターパーティに参加しました。国際のれん街という飲み屋が入った施設を貸し切って開催されました。いろんな店舗の料理が食べられるのがよかったです。ドリンクをチケットで交換できるのもいいアイデアだなと思いました。

LTを発表された @S.H. さんと一緒の席で飲んでいました。

スポンサーブース巡り

今年もスポンサーブースを巡って、スタンプラリーをしました。

STORESさんのRubyエラークイズは面白かったです。開発していてよく見るエラーメッセージは簡単でしたが、あまり使ったことがないメソッドで発生するエラーはまったくわからなかったです。

mybest さんのブースで回したガチャ*3で1等が出て高級ドライヤーをいただきました。スポンサーブースのガチャやくじで大当たりを当てたことがなかったので、まさか当たるなんて思ってなかったのでとても嬉しかったです。

那覇を楽しむ

Rubyist が行っていると X でよく流れていたステーキ屋に行かないと後悔すると思ったので、そこでステーキを食べました。ジューシーでとてもおいしかったです。

ステーキにはハマって3店舗に行きました。あと昼食に沖縄そばのお店にも1回行きました。 国際通りにも行ってお土産を買ったりしました。お土産屋がいくつもありいろいろ見ながら選べたのでよかったです。

おわりに

来年の開催地は松山でした。来年もぜひ参加したいですね。参加してみて刺激を受けたので来年までに、コミュニティに参加して Rubyist の知り合いを増やしたり、OSS 活動をしたいなと思いました。