RubyKaigi 2025に参加しています! Day 1

エクストーンの豊田です。今年もRubyKaigiの季節がやってきましたね!今回は愛媛県松山市で4月16日(木)から18日(金)までの3日間で開催されています。

rubykaigi.org

RubyKaigiはRuby言語に関するコミュニティ主催のイベントで、これからのRubyに実装される様々な機能や技術的困難の紹介であったり、Ruby言語でどんな面白いことができるかなど、多彩なセッションが繰り広げられます。毎年いろんな地方で開催されているのも特徴の一つです。

自分は大学時代にプログラミング言語の研究をしていたこともあって、10年前くらいにふらっと参加したのが最初のきっかけでした。その時の脳の焼き切れる体験が癖になってしまい、それ以来、可能な限り参加しています。

RubyKaigiの魅力

RubyKaigiはRuby言語自体のカンファレンスで、Rubyという言語そのものをこれからどうしていけばいいのかという議論をリアルタイムで聞けたり、Rubyがバージョンを上げていくにつれてパフォーマンスが上がっていったその裏側の仕組みをいろいろな観点で聞くことができるという、間違いなくRuby言語についてもっとも最先端を行くカンファレンスであることは間違いないでしょう。それが日本国内で開催されているというのは本当に幸運なことだと思います。改めて、Rubyという言語を作ってくれたまつもとゆきひろさん (Matz) に心から感謝します。

正直なところ、各セッションで行われているトピックはかなり難易度が高いもののが多く、参加してみて「さっぱりわからない…!」となることも多いです。ただ、セッション自体の熱量がすごく高くて、「さっぱりわからないけど、すごく面白い!」という気持ちにさせてくれます。普段の業務でなかなか出会えない「さっぱりわからない」という体験が本当に刺激的なのです。

セッションの登壇者もそうですが、参加者の熱量も高く、セッションの終了後はみんな若干興奮気味にセッションの感想を話しているのを耳にしました。もちろん、自分も同じことをやっていたりします。

RubyKaigiに参加することで得られる知識が、すぐに日頃の仕事の役に立つことはあまりないのですが、それを補って余りある刺激が得られることがRubyKaigiの一番の魅力だと感じています。

RubyKaigi 2025 Day 1

RubyKaigiは毎年、日本の様々な地方で開催されていますが、今年は愛媛県松山市で行われています。町を挙げての歓迎ムードがあり、地元の人たちにも支えられているイベントだなと実感しました。

松山空港にて。空港からRubyKaigi参加者歓迎モードです。

今年からエクストーンはPKSHAグループの一員になりましたが、PKSHA Technologyさんがスポンサーブースを出すとのことで、少しだけ一緒にブースに立たせていただきました。

スポンサーブースでは毎年様々な会社がノベルティを提供してくれるのですが、今年も大盛況でした。愛媛開催ということもあり、名物のみかんにちなんで全体的にオレンジ色のノベルティが今年は多かった印象です。

ノベルティを並べているデスク。本文に反して、あんまりオレンジ色じゃなかった…。

それぞれのスポンサーさんのブースではRubyに関するクイズをやっているところが多かったです。自分もいくつかチャレンジしてみましたが結果は散々…。もっとちゃんとRuby勉強しよう…。

夕方の休憩時間ではおやつが配られていて、大盛況でした。最後尾の人が持っているプレートに書いてある文字は「 Array#last 」で、このあたりもRubyKaigiらしさがあふれていました。

フレッシュなみかんと、みかんゼリーを配ってました。どれも本当に美味しかったです!

印象に残ったセッション

RubyKaigiではキーノートスピーチと最後のセッション以外は3つの部屋に分かれて、それぞれセッションが同時並行で進むため、どうしてもすべてのセッションを見て回ることはできないのですが、今日自分が聞いた中で印象的だったセッションを簡単に紹介します。

Ruby Taught Me About Encoding Under the Hood

初日のキーノートスピーチで、文字コードに関するお話からRubyのirb上にあったバグの話、Unicodeの話など、文字の符号化に関する歴史的な話やRuby上での実装について、とても分かりやすく話してくださったセッションでした。このセッション聞くだけで、文字コードについては相当詳しくなれるんじゃないかなと思います。

rubykaigi.org

Deoptimization: How YJIT Speeds Up Ruby by Slowing Down

RubyのJITで、最適化を解除する(=コンパイルしたコードではなくRubyのバイトコードに戻す)ことで高速化する処理に関するセッションで、英語のセッションでした。内容と言語の両方がわからないことで脳みそをフル回転させながら聞いていました。あらためて、Rubyという実行時になんでも書き換えられてしまう言語で、JITを実装するのがどれだけ大変なことなのかを思い知りました。

rubykaigi.org

Ruby’s Line Breaker

Ruby言語での改行の話をするセッション、ということですが蓋を開けたらレキシカルパーサーのお話をずっとされていました。Rubyは文末にセミコロン等のセパレータやターミネータを置かない言語で、改行によって文末を表現します。一方、文の途中での改行も可能で、改行をすることで意味が変わってしまうケース、変わらないケースなどが存在します。どのように実現しているのかをRubyのレキシカルパーサーを読みながら触れ、その闇と深淵について詳らかにしていくセッションでした。こういう話大好きです。

rubykaigi.org

TRICK2025: Episode I

不定期的に開催されているTRICKが今年のRubyKaigiにやってきた!

TRICKはRuby言語のあらゆる言語仕様を駆使して人類の創造を絶する超越的なコードを書くコンテストです。事前にコードを募集し、その審査結果の発表をこのセッションでやるという催しです。

どれほど超越的なコードが応募されているかはぜひ過去の受賞作品をみてください。いろいろ細かいRuby言語の仕様に触れることができるので、実は結構学びにもなるセッションだったりします。笑いの絶えない、とても愉快なセッションでした。

rubykaigi.org

おわりに

まだ始まったばかりですが、ものすごい情報量ですでに飽和状態になっています。普段脳みその使ってない部分が刺激されている感じがしていて、やはり定期的にこの体験はしておかないとなあ、という気持ちになっています。

残り2日も、一緒にRubyKaigiに来ているエクストーンのほかのメンバーがレポートを挙げてくれると思うので、ぜひ楽しみにしてください!