初めてRubyKaigiに参加してきましたので、印象に残ったセッションについて簡単にまとめます。
Make Parsers Compatible Using Automata Learning
オートマトン学習を使ってRubyのパーサーの違いを発見した発表でした。parse.yとPrismという2つの異なるパーサーから学習したオートマトンを比較することで、両者の動作の違いを効率的に見つけられるというアプローチが紹介されていました。
Continuation is to be continued
Rubyの継続オペレータであるcall/ccとその課題を解決するshift/resetについての解説でした。継続オペレータはプログラムの実行位置を記録し、後で任意のタイミングでその位置に戻るための機能です。
Goodbye fat gem 2025
Fat gem(ビルド済みのバイナリを含むgemパッケージ)のメンテナンスの難しさについての発表でした。Rubyのバージョンアップや脆弱性対応のたびに、複数の環境向けにビルドし直す必要があり、メンテナンスがとても大変そうでした。
Ruby's Line Breaks
Rubyの文法ファイルの分析を通じて、どのような条件で行区切りが無視されるか、あるいは有効になるかについての技術的な解説でした。オートマトンを応用した分析方法も紹介され、面白かったですが難しかったです。
dRuby on Browser Again!
dRubyとruby.wasmを組み合わせたブラウザ上でのRuby実行についてのセッションでした。wandsというライブラリを使ったデモも行われ、WebブラウザでRubyを活用する可能性が示されていました。
Official Party
様々な参加者と交流でき、楽しかったです。Rubyコミュニティの温かさを実感できる機会となりました。
Dissecting and Reconstructing Ruby Syntactic Structures
Rubyの柔軟な構文がパーサーの複雑さと表裏一体であるという視点からの発表でした。言語の使いやすさを実現するために、裏側では複雑な処理が行われていることが分かりました。
Making TCPSocket.new "Happy"!
Happy Eyeballs(IPv4/IPv6デュアルスタック環境での接続最適化技術)をTCPSocket.newに実装した事例についての発表でした。実装の詳細や直面した課題の説明は技術的に難しかったですが、開発過程の苦労を聞き、とても勇気づけられました。
Analyzing Ruby Code in IRB
irbの自動補完やシンタックスハイライト機能の実装詳細についての発表でした。一見シンプルに見える機能の裏側には、多くの考慮点や工夫があることが分かりました。
感想
初めてのRubyKaigiで初めて聞く単語も多くセッションの内容はあまりわからなかったですが、Rubyって面白いなーという気持ちになれて良かったです。また参加したいと思います。