2025年4月16日-18日に開催された RubyKaigi 2025 に参加してきました。
ということで、RubyKaigi 2025 に3日間参加してきたレポートをお届けします。
会場
今年の RubyKaigi 2025 は、愛媛県松山市の愛媛県県民文化会館で開催されました。
会場は道後温泉や松山城にもとても近く、Techouse 参加者の全員が夜は毎日温泉に行ってました。
また、松山のご当地グルメ(鯛めし、鯛ラーメン、うどんなど)を堪能したり松山城に登ったり、最後まで松山を満喫していました。
セッション
セッション内容は、文字コードの話から Ruby のコアな部分、パフォーマンス最適化など総数 57 個の多様なテーマがありました。
セッションは聞けるだけ聞こうと思い 23 個のセッションを聞いたのですが、正直 30% ほどしか理解できませんでした。
そんな僕が個人的に印象に残っているセッションを 3 つ紹介します。
Make Parsers Compatible Using Automata Learning
Hiroya Fujinami さんによるセッションです。
CRuby には Prism と parse.y という2種類のパーサーがあります。
もちろんこれらのパーサーには互換性が必要なのですが入力は無限に考えられます。
互換性に問題がないことをどうやって担保するのでしょうか?
そこで考えられたのが「オートマトン学習」というもので、オートマトン学習を用いてパーサー間の互換性の問題を発見するといったことを発表されています。
パーサーの内部的な仕組みやオートマトン理論などについての理解が深まりました。
Speeding up Class#new
Aaron Patterson さんによるセッションです。
みなさんが Ruby で開発をしていて絶対に使用したことがある Class#new
の処理速度を早くするという目からウロコな内容です。
Class#new
は内部では C 言語で実装されているので、YJIT の恩恵を受けることができないということが大きなボトルネックになっています。
であれば Ruby で実装すればいいじゃないか、というのが本セッションのキモとなっています。
Ruby → C を呼び出す仕組みや、インラインキャッシュの存在、高速化の考え方などを学ぶことができました。
Ruby Committers and the World
これはセッションではなく、Ruby コミッターの方々が全員登壇して熱い議論をする時間です。
Ruby の開発者が普段どんなことを考えて言語仕様や処理実装を決定しているのかを生でみることができました。
これまでは GitHub 上の Issue や PR の Conversation など、テキストベースでの議論しかみたことがありませんでした。
対面での議論はみなさん本当に熱く、言語に対する愛の強さを身に沁みて感じました。
また、ほとんどの方が実装している機能や担当箇所が限られているにも関わらず、Ruby という言語全体に対する解像度がとても高いことがわかりました。
他にも面白いセッションはたくさんあったんですが紹介しきれないので、詳しく知りたいという方は Techouse Developers Blog の各セッションに関するブログをご覧ください!
スポンサーブース
今年もたくさんのスポンサーブースが出展されており大いに楽しみました。
各スポンサーが趣向を凝らした多様な企画やゲーム(クイズ、くじ引き、ガチャガチャ、アンケートなど)を展開しており、ブースを回るだけでもとても楽しかったです。
特に印象的だったのは JetBrains さんのブースで、最終日に特典の抽選発表会が開催され、会場は熱気に包まれていました。
当選者が発表されるたびに大きな歓声が上がり、3日間を通しても特に盛り上がっていたブースでした。
まとめ
Techouse は、昨年同様新卒メンバーに来年新卒入社予定のメンバーも加え、総勢18名で参加してきました。
今回の RubyKaigi 2025 参加を通じて、Ruby の奥深くについて知ることができたとともに、Rubyist コミュニティの温かさと熱意を強く感じることができました。
セッションの難しさを痛感した反面、低レイヤー分野など継続的な学習の重要性も再認識する機会となりました。
RubyKaigi 2026 の開催予定地は北海道・函館で、2026年も Techouse は多数メンバーで参加する予定です。
RubyKaigi 2026 を見据えて今回の講演内容を復習しつつ、日々の業務に邁進してまいります。
最後までお読みいただき、ありがとうございました。
Techouseでは、社会課題の解決に一緒に取り組むエンジニアを募集しております。 ご応募お待ちしております。