RubyKaigi 2025 参加レポート
こんにちは、Qiita運営です。
2025年4月16日から18日の3日間に渡って愛媛で開催された 「RubyKaigi 2025」に、Qiita株式会社から5名のスタッフが参加しました。
Qiita では、Ruby を主要なプログラミング言語として使用しており、RubyKaigi には積極的に参加したいと考えています。
過去にも何度か協賛しており、今年は Platinum Sponsor として協賛し、ブース出展も行いました。
この記事では、会場の様子と印象に残ったセッションを紹介します。
RubyKaigi とは
RubyKaigi はプログラミング言語 Ruby の国際カンファレンスです。毎年日本で開催され、今年は愛媛県松山市の愛媛県県民文化会館で開催されました。Ruby の最新機能や Ruby で実装したもの等の紹介を行うセッションを中心に、スポンサーブースや Official Party などを通じて、Ruby コミュニティの方々との交流ができるイベントです。
RubyKaigi 2025 公式サイト:https://rubykaigi.org/2025/
RubyKaigi 参加レポート
Day 1
1日目は Mari Imaizumi (@ima1zumi) さんの Keynote「Ruby Taught Me About Encoding Under the Hood」から始まりました。
まず文字のエンコーディングの歴史を振り返り、EBCDIC(Extended Binary Coded Decimal Interchange Code = 米IBM社が開発した8bitの文字コード) との出会いや、 irb(Interactive Ruby = Rubyを対話的に実行 するためのシェル) 上での Unicode 関連のバグを解決した話、Ruby を Unicode 15.1.0 にアップグレードする過程での課題といったことが紹介されました。
例年通り、公式ノベルティとしてTシャツなどが用意されたほか、開催地である四国(愛媛)とのつながりを感じさせる、タオルや御朱印帳も配布されました。
また、1日目の終わりには Official Party が開催され、松山城の前にある公園でカツオの藁焼きなどの食事がふるまわれました。美味しい食事を囲んで会話が弾み、技術の話から趣味の話まで、様々な話題で盛り上がりました。時間が経つのもあっという間に感じるほど、楽しいひとときを過ごしました。
Day 2
2日目は Ivo Anjo (@KnuX) さんの Keynote 「Performance Bugs and Low-level Ruby Observability APIs」からはじまりました。原因の特定が難しいパフォーマンス関連のバグに対する解決策として、Ruby の様々な低レベルの API、そしてそれらを活用し実装した lowlevel-toolkit
gem を用いてアプリケーションを監視する方法が紹介されました。
gem : RubyGems というパッケージ管理システムでパッケージされたライブラリ
2日目からはスタンプラリーも始まり、多くの方がスタンプラリーのシートを持ってブース回っていました。
今年は 40 以上のスポンサーブースがあり、回るのも本当に一苦労。
弊社のメンバーもチャレンジしていたのですが、「あと2,3個まで行ったが、あとどのブースが残っているか探しきれず、コンプリートは逃してしまった」とのことでした。
ちなみに Qiita ブースでは今回この Qiitan スタンプを使用したのですが 「かわいい」と大変好評でした。
また、2日目の終わりには Qiita Drinkup at RubyKaigi 2025 を開催しました!
せっかく愛媛、松山に来たからには鯛料理、海鮮料理を味合わねばと、盛りだくさんの料理を一緒に頂きながら Rubyist 同士の交流を楽しもう、という会を企画・開催しました。
参加いただいた方から、「たくさんの料理で大満足できた」「同席した方と面白い話が出来た」など、とても楽しい時間を過ごせたというお声をいただいて、企画して良かったと感じました。
ご参加いただき、ありがとうございました!
Day 3
3日目は、毎年恒例のセッション「Ruby Committers and the World]」から始まりました。
これはRuby コミッターの方々が壇上で Ruby に関する議論を繰り広げる場で、Static Barrier (構想段階の機能) の議論や Ruby 4.0 に向けた展望などについて議論が交わされました。
また、「もし後方互換性を無視できるなら?」というユニークな問いに対し、インラインコメントの実装についての意見が交わされる場面もありました。普段互換性に厳しいコミッターの配慮が見え隠れする、興味深いセッションでした。
様々なセッションが行われる RubyKaigi ですが、その合間や休憩時間に多くの参加者が立ち寄るのがスポンサーブースです。3日目も多くのブースが賑わいを見せていました。
私たち Qiita のブースも、3日間を通して本当に多くの方々にお越しいただきました。ブースで行った「あなたが調べるときによく見るのは?」というアンケートでは、AIをファーストアクションとする方が多かったという興味深い結果が得られました。
そして何より、ユーザーの皆さまからの温かいお言葉や貴重なご意見を直接伺うことができ、非常に有意義な時間となりました。ご来場いただいた皆さま、本当にありがとうございました!
最終日の最後のセッションでは、Ruby の生みの親 Matz こと、まつもとゆきひろさんによる Keynote でした。「Programming Language for AI age」というタイトルのもと、AI 時代においてプログラマはどう働くべきか、そして Ruby がどうあるべきかといった、本質的な問いが投げかけられました。そのお話からは、Ruby の哲学や、変化していく時代における Ruby の可能性を強く感じることができました。
印象に残ったセッション
セッションを聴講した4名のエンジニアの印象に残ったセッションをそれぞれ紹介します。
また、ここで紹介するセッション以外の感想も、後日それぞれQiitaに投稿する予定です。
Inline RBS comments for seamless type checking with Sorbet
Qiita の千葉 (@tomoasleep) です。今年は Type Checking 系のセッションを主に聞いていました。個人的には全部印象に残ってるのですが、一番印象に残っているのは、@Morriar さんの 「Inline RBS comments for seamless type checking with Sorbet」です。
Inline RBS comments for seamless type checking with Sorbet – RubyKaigi 2025
この発表は、 Sorbet の RBS Comments Support をどういうモチベーションで組み込んだか、どう組み込んだか、内部でどう扱っているかという内容です。
大まかな内容は RBS Comments Support にも書かれているのですがが、Sorbet の開発者は海外の方が比較的多く、普段考えていることをなかなか直接聞く機会は無く、そういった背景を聞くことが出来たという点で、参加して一番良かったと感じたセッションでした(スピーカーと話せる機会を作れるのも、海外の方と交流できるのも RubyKaigi ならでは!)。
折角なので、発表後に勇気を出して直接質問もしてみた (rbs-inline の doc 記法を取り入れる可能性について) のですが、筆者の英会話力だと1個簡単な質問をするのがやっとでした。
来年こそは Sorbet の開発者と英語で流暢にコミュニケーション取れるようにしたい…! (ということでとりあえず ChatGPT と英会話し始めました)
Goodbye fat gem 2025
Qiita の花田です。私が聴講したセッションの中で印象に残ったセッションは@ktouさんによる「Goodbye fat gem 2025」です。
Goodbye fat gem 2025 – RubyKaigi 2025
このセッションでは、ビルド済みバイナリーを含むfat gemのメンテナンスコストの高さに焦点が当てられ、メンテナーの負担を軽減するためのエコシステム構築の提案が発表されました。
具体例として、広く利用されているNokogiriを挙げ、ユーザーが快適にfat gemを利用できる裏側で、メンテナーが多大な労力を費やしている現状が示されました。
この状況が続けば、fat gemのメンテナーが減少し、結果としてRubyのエコシステム全体に悪影響が及ぶのではないかと指摘されました。そして、この課題を解決するために、gemのインストールプロセスをより簡単にするための方法が提案されました。
普段、意識せずにfat gemを利用していますが、この発表を通して、快適な利用体験がメンテナーの努力によって支えられていることを改めて認識しました。過去にfat gem特有のインストール時のエラーに遭遇した経験があるため、依存ライブラリが自動的にインストールされ、ビルド環境を意識せずにgemを導入できるようになることは非常に魅力的だと感じました。
また、@ktouさんの提案とは異なるアプローチがRubyGems側で検討されているというお話もあり、今後どうなっていくのか楽しみです。
Introducing Type Guard to Steep
Qiita の山田です。僕が聴講したセッションの中で特に印象に残っているセッションは @tk0miya さんによる 「Introducing Type Guard to Steep」です。
Introducing Type Guard to Steep – RubyKaigi 2025
このセッションは、Ruby の型検査ライブラリ Steep の 型ガードに関する話です。
型ガードとは、特定の構文で型を絞り込むことができる機能で、例えば変数 user
の型が User
または nil
のとき、 if user.is_a?(User)
のような if
ブロックの中では user
の型が絞り込まれて User
型として扱われます。
セッションでは Steep の 型ガードについての説明から始まり、@tk0miya さんが実装したユニオン型の型ガードや ActiveSupport
の present?
での型ガードの仕組みの紹介、現在提案中のユーザー定義型ガードが紹介されました。
僕も普段 Steep を使って型検査を行うことがあるのですが、稀にnilガードがうまく機能しないことがありました。このセッションで紹介された改善は、そうした問題の解決に繋がりそうです。仕組みについても理解できたため、今後は Steep 利用時に自分で修正方法を考えられそうです。
また、Steep を使うだけでなく、将来的には貢献もしていきたいです!
Analyzing Ruby Code in IRB
Qiita の鈴木です。特に印象に残ったセッションは、@tompng さんの「Analyzing Ruby Code in IRB」です。
Analyzing Ruby Code in IRB – RubyKaigi 2025
開発で欠かせない IRB が、実は裏側でどんなコード解析をしているのか、という普段考えもしなかったテーマで、冒頭から引き込まれました。現在の IRB が Ripper::Lexer を使って構文を解析していること、そしてそれが持ついくつかの技術的な課題(例えば、特定の複雑な記法や二重解析の問題など)があることを具体的に知ることができました。
対照的に、Prism を活用することで、これらの課題が解決され、シンタックスハイライトの正確性向上や、オートコンプリートにおけるより高度な型解析などが実現される可能性が、分かりやすい例とともに示されていました。
Ripper::Lexer の現状と Prism による改善点が明確に比較されており、技術的なアプローチとその効果が非常に理解しやすかったです。
セッション後、実際に IRB でコードを入力する際に、解析の裏側を意識するようになり、その仕組みの面白さを改めて感じています。
このセッションを通して、Rubyという言語そのものや、その周りのツールの奥深さに触れ、自分も何らかの形で Ruby コミュニティに貢献していきたいという気持ちが強くなりました!
さいごに
3日間にわたる RubyKaigi 2025 は、本当に刺激的で、たくさんの学びと温かい交流に満ちた時間でした。運営の皆さま、協賛いただいたスポンサーの皆さま、登壇者の方々、そしてブースにお越しくださった皆さま、本当にありがとうございました!
来年の RubyKaigi 2026 は北海道函館市で開催されます。皆さまと再び会えるのを楽しみにしています!
We are hiring Rubyists!
Qiitaではサービス拡大のため、Rubyやコミュニティが大好きなエンジニアを絶賛募集しています!
今回参加したスタッフともカジュアル面談出来ますので、RubyKaigi の思い出などを一緒に話しませんか?お待ちしております!