give IT a try

プログラミング、リモートワーク、田舎暮らし、音楽、etc.

「ありがとう」で埋め尽くされた、初めての #RubyKaigi

はじめに

今回のRubyKaigiは2026年4月22日〜24日に開催され、僕は初参加でした!

って言うと、

「えっ、伊藤さんってRubyKaigi初めてなんですか?意外!!」

と思った方も多いと思います😅
そうなんです。Ruby歴10年以上で初めてなんです。

コロナ前は仕事が忙しくて行けず、コロナ中はコロナなので行けず、コロナ後も家の中がバタバタして行けず。
今年になってようやくいろいろ落ち着いたので、「よし行くぞ!」と初めてRubyKaigiに行く決意をしたのでした。

ただし、家の用事があるため、3日間フルで参加することはできず、Day 0(イベント前日)からDay 2の昼過ぎまでしか滞在できませんでした。。
それでもとても充実した時間を過ごすことができたので、今回は僕のRubyKaigi参加レポートを書いていきます。

rubykaigi.org

【もくじ】

Day 0:えっ、飛行機が飛ばないの?

前日入りするために、僕は午前11時 伊丹空港発、函館空港行きの便を予約していました。
なるべく十分な余裕を持って行けるように、朝9時に伊丹空港に着きました。

が、空港に着くとターミナル前に長蛇の列が。
これは何事?と思ったら、なんと!

えー、まさかの管制システムトラブル発生。
その前日には東北で大きな地震があったし、なんとも不運続きな・・・。

長蛇の列を眺めながら「どうするべ」と立ち尽くしていたら、前方から知ってる人が歩いてきました。
「あ、ydahさんだ」
というわけで、ydahさんに声をかけて、「いやあ、本当に困りましたねえ」と2人で話していました。
その後、同じく飛行機に乗れなくて困っていたluccafortさんも合流して、3人で「函館に行けないなら、ここで伊丹.rbを開催しますかあ」と冗談を言ったりしていました。

なんとか1時間遅れで出発できることに

飛ぶのか飛ばないのかはっきりした情報がなく、

「飛ばなかったらどうする?新幹線で行く?」
「えっ、新幹線で行くと8時間かかるの?それはキツいなあ……」

みたいな話をしていましたが、最終的にはなんとか1時間遅れで飛ぶことになりました。

ただ、僕たちはJALの便でしたが、同じ時間帯に飛ぶ予定だったANAは欠航になっており、ANAで予約していた人は他の手段で函館に向かわないと行けなかったみたいです(大変だ……)。

函館着。美味しいお寿司を食べる

函館には14時過ぎに着きました。
RubyKaigi前日に1時間遅れで到着するなら全然許容範囲です。

函館空港にはRubyKaigiの看板が立っていました。

Day 0はANDPADさんの前夜祭に参加する以外、特に予定を決めていなかったのですが、伊丹空港で落ち合ったydahさんとluccafortさん、それと現地で一緒になったすぎうりさんと一緒に、函館駅周辺でちょっと遅いお昼ご飯を食べました。

tabelog.com

入ったお店はうに専門店だったのですが、僕はそこまでうにが好きではなかったので(せっかくつれていってもらったのにすいません💦)、お寿司を食べました。

お寿司はどれもめっちゃ美味しかったです。さすが函館!
そして、普段はそこまでたくさん食べる人ではないので、お腹がいっぱいになりました。
ごちそうさまでした!!

晩はANDPADさん主催の前夜祭へ

お寿司を食べた後はみんなでRubyKaigiの会場に向かい、プリチェックイン(前日の入場受付)を済ませました。
当日の混雑を緩和するために、前日にネームバッジ?イベントパス?がもらえるようになってるんですね。
初参加なので初めて知りました。

そして晩はANDPADさん主催の前夜祭へ向かいました。

https://andpad.connpass.com/event/385957/

ここでも美味しそうな料理がたくさん出てきたのですが、少し前にお寿司をたらふく食べたあとだったので、一口ずつぐらいしか食べられませんでした。悔しい&申し訳ない。。。

僕のテーブルでは、たまたま隣に以前からよく知っているhsbtさんとwillnetさんが座っていたので、ぼっちにならずに済みました(RubyKaigiには初参加だったので、この時点では結構緊張してたんですよ……)。

Photo by TONYさん

前述のとおり、この日は飛行機が飛ばなかったりした影響で、この前夜祭は当日キャンセルが大量に発生したみたいです。
そのため、キャンセル待ちだった人の大半が繰り上げ参加できたそうです。

それにしても、これだけの人数に対して無料で前夜祭を開催してくれるANDPADさんってすごい。
楽しい前夜祭を開催してくれて、どうもありがとうございました!!

Day 1:初めてのRubyKaigiがスタート!

さて、いよいよRubyKaigi当日です。
Day 0ではいろんなRubyistたちに会って話したので、緊張感はだいぶんなくなっていました。

ここから下では当日聞いた発表を簡単にまとめていきます。

キーノート:The Journey of Box Building

Ruby 4.0から実験的に導入されたRuby Boxについて、大変だった部分や具体的な実装方法が語られていました。技術的な部分は難しいところも多く「完全に理解した」とは言えませんが、Ruby Kaigi 2023で起きたあるきっかけがRuby Box開発の動機になり、この函館(ハコ=Box、館=Builidng)で奇跡的に伏線回収された、というエピソードがお見事でした!

When Can You Skip a Test? Tracking Test Impact

「巨大なプロジェクトではテスト全体を毎回実行すると遅い。でも、コードの変更点に関係するテストだけを実行すれば速く終わるよね」というコンセプトで開発された、テスト影響度解析(Test impact analysis) gemの解説です。

github.com

僕も実務では「毎回全テストを回すのは無駄が多い」と思っていたので、これはとても興味深い発表でした。
ただし、登壇内容としては、「どういうふうに影響度を解析するか」という技術的な解説がメインで、具体的な導入手順については語られませんでした。
このgemはかなり気になるので、折を見て詳しく調べてみようと思います。

Liberating Ruby's Parser from Lexer Hacks

speakerdeck.com

伊丹空港でご一緒させてもらったydahさんの発表です。
が、これは前提知識がない状態だとかなり難しかったかも。。

発表を聞いた時点ではほとんどわからず、このブログを書いている今の時点で、スライドの内容をGeminiに要約してもらったり、ydahさんが書いていた告知ブログを読んだりすることで、「なんとなくわかった(気がする)」という状態になりました😅

雑にまとめると、こんな感じでしょうか?(間違ってたらツッコんでください、ydahさん!🙏)

  • Rubyの文法は柔軟だが、悪くいえば曖昧でパーサーにとっては嬉しくない
  • 従来のRubyではlex_stateというフラグをparse.yに埋め込んで、強引に曖昧さを解決していた
  • だがこれはハック的な手法なので保守性が非常に悪いという問題があった
  • そこでPSLRという手法(理論)を用いて、構文の曖昧さを6種類(6つのレイヤー)に分類した
  • この分類の結果、6つ目のレイヤー(Layer 6)以外は、必ずしもlex_stateに頼る必要がないことがわかった
  • Rubyの文法の複雑さを整理・可視化したことで、未来のRubyを安全に設計・進化させるための土台が完成した
Guide to getting started walking source codes of CRuby

https://youchan.info/slides/RubyKaigi2026/

CRubyのコードを読むときのコツを解説する、youchanさんの発表でした。
「RubyKaigiに参加してるけど、CRubyのコードは全然わかりません!」っていう人は結構多いんじゃないでしょうか?
かく言う僕もその一人です(苦笑)。

さすがに「この登壇を聞けばCRubyを全部理解できる」というわけにはいきませんが、それでもCRubyのコードを読むときのハードルがぐっと下がったんじゃないかと思います。

また、会場ではyouchanさんの執筆した「CRuby Quest 〜Rubyのぼうけんのしょ〜」という同人誌も売っていたので、これとあわせて読めば、さらにコードリーディングが捗ります。

ちなみにAIにコードの読み方を答えてもらう際は「ギャル語」に設定するのがオススメだそうですw

Digits, Digits, and Digits

https://drive.google.com/file/d/1HCxghNmKMx8WIMdPp3hgNmAlEOxtMbId/view?usp=sharing

巨大な数を高速に計算するためのBigDecimalのアルゴリズムを見つけるまでの、tompngさんの試行錯誤の過程を解説する発表でした。
見つけたアルゴリズムは、実は"Bit-burst"と呼ばれる既存のアルゴリズムで「車輪の再発明をしていただけ」というオチだったのですが、それでもそこに至るまでの数学的&計算機科学的なアプローチは非常に興味深いものでした(どちらも僕はあまり明るくない分野ですが……)。

難しい話をわかりやすく説明するだけでなく、ときどきユーモアのある小ネタを交えて説明してくれたので、「緩急の付け方が絶妙だなあ」と感じました。

Lightning Talks

Day 1の最後の枠は、11人のLTでした。
どの話も興味深く、面白かったのですが、フィヨルドブートキャンプ(FBC)の卒業生であるima1zumiさんとharuna_tsujitaさんのLTがFBCのメンターとして、個人的にとても印象深かったです。2人ともすごく立派になったなあ!!😭



Day2:僕だけもう最終日……

冒頭にも書いたとおり、家の用事で昼過ぎに帰らないといけなかったので、僕だけ早々とDays 2が最終日になります(涙)。

キーノート:Twenty Years of JRuby

Day 2のキーノートは、JRubyの開発を20年以上続けているheadiusさんの発表でした。
JRubyのこれまでの歴史やheadiusさんのRubyに対する思い、これからのJRubyについてなどなど、Ruby愛とJRuby愛に満ちあふれたトークを繰り広げてくれました。
JRubyは名前はよく聞くものの、そこまで詳しくなかったので、「へ〜、そうなんだ、JRuby!」と思うようなポイントがたくさんありました。

ちなみに、あまりテクニカルな話題が出てこなかったせいもあると思いますが、「英語がすごく聞き取りやすくてわかりやすいな〜」というのが、トーク内容以外の面でも印象深かったです。

No Types Needed, Just Callable Method Check

「生成AIが十分なコードを書いてくれる現代に必要な仕組みは、型ではなくNoMethodErrorを防止するガードレールだけでいいのではないか」
「NoMethodErrorを防止するだけなら、わざわざ型を書かなくてもコードの静的解析によって判定できるのではないか」

という思想のもとに作られた、Method-Rayという「メソッドが呼び出し可能か判定するgem」を説明する発表でした。

正直なところ、上記の思想に僕が共感できるか?というと、ちょっと頷きにくいところがあるのですが、Rubyの型(というか、実行時エラーを防止する仕組み)はどうあるべきか?という考え方のひとつとしては、興味深いものがありました。
このあたりは現場で書かれているコードの規模や開発・運用プロセスなどによって「Rubyのあるべき姿」に対する考えが変わってくるような気もしますね。

Implementing Core Set

SetクラスはRuby 4.0から組み込みクラス(コアクラス)になりました。
組み込みクラスに昇格させるにあたって、jeremyevans0さんはHashを利用していた実装をCで再実装し、さらにメモリの使用量を減らすこともできました。

・・・というのが発表の概要なのですが、「スライドに出てくるコードはバリバリのC言語&かなり早口な英語」だったので、途中で付いていけなくなりました。(うひー)
なんとなく雰囲気だけ理解した、っていう感じですね。

僕が見た発表は以上です!

全体的な感想=やっぱり技術者個人が評価される世界っていいな

はてなブックマークなどを見ていると、最近上がってくるテック系の記事は「あれもAI、これもAI」で、正直食傷気味になっています。
「自分で手を動かさなくても、AIがここまでやってくれるようになりました!」みたいな話も、もちろん技術的な価値はあると思います。
ただ、それは「その人がすごい」のか、それとも「AIがすごい」のか、どっちかよくわかりません。

その点、RubyKaigiは基本的にどれも「私の成果」や「私の偉業」を発表するので、シンプルに「この人、すげー」と思えます。
個人的には「ヒーロー」や「ヒロイン」として技術者個人が評価される世界がいいなと思っているので、たとえ「難しすぎる、ついていけねー」と思ったとしても、僕にとっては心地のいい空間でした。

あれ、発表の感想が少ないのでは?→企業ブースを回ってました

ところで、RubyKaigiに参加された方は気付いたかもしれませんが、Day 1もDay 2もタイムテーブルにはもっとたくさん発表があったのに、僕が上で紹介した発表はそれよりも少ないです。

実は発表を見に行くだけでなく、企業ブースもたくさん回っていたので、一部の発表は見ることができませんでした。
もうちょっと詳しく言うと、

休憩時間に企業ブースを回る
 ↓
気付いたらもう登壇が始まっていた
 ↓
遅れて入るのも失礼なので、このまま企業ブースを回ることに

みたいな感じで行動していました。

RubyKaigiって企業ブースもめっちゃたくさんあるんですね。
あんなにたくさんあるとは思わなかったです。

企業ブースに行って、どんなビジネスをやっているのかを聞いたり、ミニゲームをしてノベルティをもらったりするのも楽しくて、ついいろんな企業ブースを転々としてしまいました。
発表は3トラック同時並行で進むし、企業ブースは大量にあるし、身体が1つではまったく足りませんでした!!


ノベルティ第1位は「ツボ押し棒」!?

いろんな企業でいろんなノベルティをいただいたのですが、RubyKaigi 2026の「このノベルティが良かった」第1位は、Linc'wellさんの「ツボ押し棒」でした!


Image: https://x.com/lincwell_dev/status/2046792552226177308

1位の理由は、妻が「これいいわ〜。最高!!」と喜んでいるからです。
(そして、ツボ押し棒で妻の足裏をマッサージしているのは僕です😅)

「技術記事を書く技術」の先行販売&サイン会もやっていました

RubyKaigiでは技術書が購入できる本屋さんコーナーがあります。
今回はここで新刊「技術記事を書く技術」の先行販売も行いました。

また、Day 1とDay 2の昼休みには著者サイン会も開催されました。

恐れ多くもRubyのパパMatzさんと、キーノートスピーカーのtagomorisさんと並んでサイン会を開催させてもらいました↓

Day 2ではイベントコーナーの壇上で「技術記事を書く技術」の紹介もさせてもらいました。
(まったく何も準備せずに突然呼ばれたので、グダグダな話になったかもしれませんが……)


Day 3専用の購入者特典としてメッセージカードを作った

Day 3は僕はサイン会に参加できなかったので、代わりにメッセージカードを作って本の購入者に渡してもらいました。

ちなみにこのメッセージカードはもともと用意していたわけではありません。
「Day 3だけ、本の購入者にサインできないのは申し訳ない」ということで、急きょDay 1に近くの文房具店で厚紙とペンを買ってきて、夜にホテルで書き書きして作ったものです。

なんと、100冊全部完売しました!

編集の大嶋さんからは事前に「RubyKaigiには『技術記事を書く技術』を100冊持ち込みます!」と言われていました。
それを聞いたとき、僕は「ひゃっ、100冊!?いや、Rubyの本でもないのに、RubyKaigiで100冊はちょっと無謀なのでは!?」と思いました。

大量に売れ残る新刊、閑散としたサイン会コーナー……そんな地獄のような光景を目にすることになるのではないか、と僕は本気で心配していました。いや、本当に!!

が、予想に反して、たくさんの人が「技術記事を書く技術」を購入してくれました!
サイン会もおかげさまで大盛況でした。

Day 2が終わった時点で、すでに80冊以上が売れ、残り約20冊、という状況でした。

Day 3は僕は現地にいないので、販売員を兼務している大嶋さんから状況を聞くしかなかったのですが、昼休み中に無事に全100冊が完売したらしいです。すごい!!

メッセージカードが少し余っていたので、それはチェリー本を買ってくれた人と、「技術記事を書く技術」を買ったけどサインはもらっていない人にプレゼントすることにしました。
最終的にはメッセージカードも全部配布済みになったらしいです。

よかった、どちらも余らなくて本当によかった!! 😭

そして、現地で「技術記事を書く技術」と「プロを目指す人のためのRuby入門」を購入してくださったみなさん、ほんと〜〜にどうもありがとうございました!!

「はじめまして」の人から「お久しぶりです」の人まで、いろんな人に会えた

Day 0の前夜祭、Day 1のオフィシャルパーティー、企業ブース、著者サイン会など、RubyKaigiではいろんな場所でいろんな人に会うことができました。

初めてお会いする人からは、

「チェリー本を読んでRubyを勉強していました!」
「伊藤さんに初めて会えて嬉しいです!」
「QiitaのRSpecの記事は何度も読みました!」
「伊藤さんのブログは昔からチェックしてます!」

といった、とても嬉しいお声がけをたくさんいただきました。
本当にありがたいことです!

Qiita記事やブログは普段からよく書いていますが、ネット上の活動なので、読者のみなさんの顔を拝見する機会はないんでよね。
(1人1人の人間というより、PVとか「いいね」の件数とか、そういった数値になってしまいがち)
また、読者のみなさんからしても、「伊藤さんはネット上でしか見かけない人」だと思います。
RubyKaigiは「記事を書いている人」と「記事を読んでいる人」がリアルに対面できる貴重な機会になりました。

いやあ、これだけでも行った甲斐があったと思います!
そして、現地でお会いしたみなさん、今後ともよろしくお願いしますね😘 


まとめ:「ありがとう」で埋め尽くされた、初めてのRubyKaigi

というわけで、今回のエントリでは、初めて参加したRubyKaigiの参加レポートを書いてみました。

RubyKaigiでは何度も「ありがとう」と思いましたし、実際に何度も「ありがとう」という言葉を口にしました。

  • Rubyを作ってくれたMatzさん、どうもありがとう!
  • テクニカルで興味深い話をたくさん聞かせてくれた登壇者のみなさん、どうもありがとう!
  • すばらしいカンファレンスを開いてくれた、運営やスタッフのみなさんありがとう!
  • イベントの運営費や美味しい食事を提供してくれたスポンサーのみなさん、どうもありがとう!
  • 本屋さんを開いてくれたささださん、本の販売員を兼務してくれた編集の大嶋さん、どうもありがとう!
  • 「技術記事を書く技術」やチェリー本を買ってくれたみなさん、どうもありがとう!
  • 「伊藤さんに会えて嬉しいです」と声をかけてくれたみなさん、どうもありがとう!
  • 久しぶりに会っておしゃべりしてくれた旧知のRubyistのみなさん、どうもありがとう!
  • 決して安くない参加費用を負担してくれた弊社ソニックガーデン、どうもありがとう!

これで全部かな?もし感謝を伝え損ねている人がいたらごめんなさい。

そう、こんな感じで会場をあとにするときに「この3日間で、数え切れないぐらい、『ありがとう』って言ったなあ」と思いました。
僕の初めてのRubyKaigiをひとことでまとめるなら「ありがとう」なのかもしれません。

2027年は宮崎のようですね。
今のところ来年も行こうと思っているので、来年もみなさんよろしくお願いします!

おまけ

このブログのどこかに「技術記事を書く技術」の小ネタが紛れ込んでいます。
ヒントはこの手書きポップに書いてあります。
「技術記事を書く技術」を持ってる人は探してみてね!