3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【初参加レポート】RubyKaigi 2026 in 函館に行ってきた

3
Last updated at Posted at 2026-05-06

はじめに

自己紹介

  • 大学4年生
  • Ruby歴1.5年
  • アルバイトでRailsを使ったWebアプリケーションを作っている

参加のきっかけ

バイトでお世話になっている社会人や先輩の方々がRubyKaigiに行っていて、存在を知って自分も行ってみたいと思ったから。

ちなみに今回がRubyKaigi初参加で、技術カンファレンス自体も初参加でした。

この記事では、印象に残ったセッションやイベント、初参加で感じたことをDay1〜Day3の時系列でゆるくまとめていきます!

あと、セッションは全部英語なので、スライドとリスニングでなんとなく雰囲気で理解した感じです。来年までに英語をちょっと頑張りたい。

目次

行くまで

私は沖縄住みなので、沖縄 → 東京 → 函館という長旅でした。前入りせずにDay1で移動し、会場に着いたのは16:00くらい。Day1の最後のセッションだけ滑り込みで見て、LTの時間はブース巡りをしていました。(次回からは絶対に前入りする!)

東京 → 函館の便で、初めてバスに乗って飛行機まで移動して、タラップから搭乗するやつを体験しました。普段は搭乗橋(ボーディングブリッジ)でそのまま乗り込むタイプしか経験していなかったので、地味に新鮮で楽しかった!

初めてのタラップ搭乗


Day1

📚 Session

Faster Bundler, Happier Developers

🔗 セッションページ

Day1で唯一見られたセッション。bundle installを爆速にしようぜ!って話。

何が問題だったか

bundle installResolve → Download → Install の3ステップ構成。ここに以下のような非効率があったらしい。

  • workersが1本のHTTP connectionを取り合っている
  • 依存関係があると順番待ちが発生する
Bundler 4.0.10での結果

rails new 後の bundle install約1.91倍 速くなった!!

Railsエンジニアとしてありがたい!!

Native extensionsの話

後半はネイティブ拡張のビルドを楽にするShopify製ツール cibuildgem の話。

  • GitHub Actions上で各プラットフォーム向けにネイティブビルド
  • trusted publishing で rubygems.org にリリースまで自動化
  • ワンライナーで初期workflow生成(gemspecを読んで自動でプラットフォーム調整)

メンテナの負荷が下がって便利そうだった。

感想

普段Railsアプリを触っていると、CIや開発環境構築で bundle install の待ち時間は地味に効いてくるので、Bundlerの改善が日々のRails開発体験に直結するんだと実感した。

🎉 Event

ブース巡り

LTの時間はブース巡りをしていました。

開発でいつも使用しているRubyMineを出しているJetBrainsのノベルティを初Get!トートもピンズも可愛い。

JetBrainsノベルティ

RubyKaigi 2026 Official Party

Official Partyではいろんな方と交流し、Matzさんとも話せたのですごく楽しかった。

初めて直にRubyのコミュニティの熱さを感じることができた。

Hello Drink up

テーブルで6名ほどの社会人と交流できた。

意外とRubyを触っていなくて、友人関係で来ていたり、会社関係で来ていたり、エンジニア職じゃない方もいて いろんな分野の話ができた。(セキュリティ、別言語、広報系など)


Day2

📚 Session

From C to Ruby: Porting Doom

🔗 セッションページ

Day2で印象に残ったセッション。Chocolate Doom(DoomのOSS実装)をRubyに移植したという話。

ちなみに gem install doom で入れられるらしい。

Ruby版Doom vs Chocolate Doom

image.png

Ruby版はサウンドがエフェクトのみ、フレームレートはunlocked、そしてRubyKaigi Modeまで搭載

Doom Wallのレンダリング

BSP(Binary Space Partitioning)treeを使って壁を描画している。Z-bufferは使っていない。

BSPは速いけど制約あり / Z-bufferは遅いけどGPUがあれば速くなる

Doomは1993年、RAM 8MB時代に作られたので、メモリフットプリントが小さいBSPが選ばれたっぽい。

実際に動いている様子

image.png

ちゃんとDoomしている…!!

パフォーマンス比較

image.png

Rubyバージョン別のFPSベンチマーク。

  • Interpreter: 30〜35 FPS
  • YJIT: 80 FPS以上!
  • TruffleRuby: 145 FPS〜(化け物)

ZJITはYJITの次世代版だけど、まだチューニングが進んでないので現状はYJITが最速とのこと。

Building a Modern Ruby <-> C++ Toolchain

🔗 セッションページ

Ruby ↔ C++ のツールチェーンを5年かけて整備した話。

きっかけは pybind11 への憧れ

2019年にC++のパターン検出エンジンをpybind11でPythonバインディングしたら、データサイエンティストががん研究で大きな発見に繋がったらしい。「IRBでコンパイル済みコードが動くあの感覚をRubyでも」と思ったのがきっかけだそう。

Ruby <-> C++ のエコシステムを整備

image.png

5年で関わった/作ったgemたち。

  • ffi-clang: C++ヘッダをlibclangでパース
  • ruby-bindgen: clang ASTからバインディング生成
  • Rice: Ruby ↔ C++ のインターオペラビリティ
  • CMake: Ruby側のサポート強化(11個のPRをupstreamへ)
OpenCVへの挑戦

最終目標はOpenCVのRubyバインディング。既存のruby-opencvは5年更新なし+削除されたC APIベースで詰んでいた。

OpenCVは数千クラス・数万メソッド、モダンC++とレガシーCスタイルが混在、テンプレートだらけ、と激ムズ。手書きで全部書くのは無理という結論に。

ruby-bindgen でバインディング自動生成

そこでclang ASTから自動生成するツール ruby-bindgen を作った。Ruby idiomを意識した変換までサポート。

例: isEnabled()enabled? のようにRubyっぽいメソッド名に変換してくれる。型解決もやってくれる。

生成された量

image.png

opencv-rubyで自動生成されたバインディング。

  • Classes: 1,058
  • Methods: 3,145
  • Module functions: 4,006
デモ

image.png

最後にRubyからOpenCVを動かして、リアルタイムでカートゥーンフィルターを掛けるデモ。

感想

このツールチェーンが整ってくると、C++で書かれたライブラリがRubyから使えるようになるということ。

今までは「このライブラリPythonにしかないからPython使うか…」みたいな選択になりがちだったけれど、それがRubyでもできるようになるのはめちゃくちゃありがたい。実際にPyTorchやfaiss、OpenCVあたりはすでにRubyから使えるようになっているらしい。

Rubyに触れる機会が増えそうで、なんだかいい未来を感じた。

🎉 Event

函館グルメで夜を満喫

Day2の夜はDrink upには参加せず、会社の方と一緒に函館グルメを巡った。

ラッキーピエロ

函館の有名バーガーチェーン「ラッキーピエロ」へ。ガラナトンカツバーガーをいただきました。ガラナはやっぱり美味しい!

飯テロ注意(クリックで展開)

ラッキーガラナ
ラッキーガラナ

トンカツバーガー
トンカツバーガー

海光房

そのあとは 海光房 という海鮮のお店へ。

函館塩レモンサワー、ウニ2種盛り合わせ、ホッケの刺身、アスパラガスなどを堪能した。

飯テロ注意(クリックで展開)

函館塩レモンサワー
函館塩レモンサワー

ウニ2種盛り合わせ
ウニ2種盛り合わせ

ご当地バーガーから上質な海鮮まで堪能できて、北海道を感じた夜でした!


Day3

🎉 Event 朝

函館朝市で海鮮丼

朝は函館朝市で海鮮丼を食べた。

飯テロ注意(クリックで展開)

海鮮丼
海鮮丼

Treasure Data: Wake-up Tram (Day 3)

朝食後は Treasure Data: Wake-up Tram に参加。Tram(路面電車)で会場まで移動するという面白いイベント。

Tramの中で外国人のRubyistと交流して、好きなgemの話などで盛り上がった。知らないライブラリを教えてもらえて、今度使ってみようと思った。

📚 Session

Ruby Committers and the World

🔗 セッションページ

Rubyコミッターたちが目の前でディスカッションするセッション!新しいメソッドの提案や今後のRubyについて、生で議論を聞ける貴重な場でした。

Matzさんの継承問題

「Matzさんの思考や思いはコミッターたちに継承されているから、Matzさんは天から見守っておくらしい(笑)」という話が出て、会場は大爆笑。

メカMatzをつくるか、少人数の合意形成でRubyの方針を決めていくのがいいかも?(Matzさん)

AIとRubyの去年→今年

去年「RubyでAIを使っている?」という問いがあって、今年はその振り返り。

  • 去年: GPTにコードを書かせるだけ
  • 今年: Claude Codeなどで実装させている
  • デバッグするときに情報を渡してAIに任せる、8割はAI。ただし骨組みは自分で書かないといけない(あるコミッターさん)

1年でこんなに変わるんだ、と実感。

個人的に気になったトピック

image.png

  • Object#deep_freeze の追加提案: 再帰的にfreezeできるやつ。Ractor.make_shareable を使わなくて済む
  • frozen_string_literal のデフォルト化: これは個人的にめちゃくちゃありがたいので進めてほしい!

Smalruby: Visualizing Ruby with Bidirectional Transpiration

🔗 セッションページ

Day3で一番刺さったセッション。Scratchみたいなビジュアルプログラミング ↔ Ruby を双方向で変換できる Smalruby というプロダクトの話。

何ができるの?

ブロックでプログラムを組むと、Rubyコードに変換される(しかも逆方向もOK)。

内部では Prism を使って、

Ruby → Prism AST → Block

の流れで変換しているとのこと。

The Crisis: 未来のRubyistはどこへ?

image.png

このセッションで一番印象的だったスライド。

高校: DNCL(Pythonベース)→ 大学: Python → 「Pythonでいいじゃん」

最初に触れた言語って頭に残るので、このままだと未来のRubyistが減っていく……という危機感。

DNCLモードがすごい

image.png

そこで、SmalrubyではRuby記法のDNCLに変換できる機能を実装している。

DNCL(共通テストの情報科目で使われる日本語ベースのプログラミング言語)は通常Pythonベースなんだけど、これをRuby側で書ける。

例: 表示する("hello")say("hello", 1)

感想

Smalrubyは、初めて触れる言語がRubyになる機会を作って、未来のRubyistを増やすきっかけになるプロダクト

技術的な凄さもさることながら、コミュニティの未来を真剣に考えて作られているのが伝わってきて、めちゃくちゃ良いプロダクトだなと感じた。

🎉 Event 夜

hacomono Yakiniku Drinkup

夜は hacomono Yakiniku Drinkup に参加。

4人卓で、外国人の方、hacomonoの社員さん、そして自分と同じ27卒の学生と一緒に美味しいお肉を堪能した。

飯テロ注意(クリックで展開)

盛り合わせ
盛り合わせ

焼肉
いい色…

その学生の方がKaigi on Railsにも行くと話していて、自分もRailsエンジニアとして10月のKaigi on Railsに参加しようと思った!こういう繋がりが生まれるのもRubyKaigiのいいところ。

函館山から100万ドルの夜景

焼肉の後は、hacomono社員さんからのお誘いで函館山の100万ドルの夜景を見に行った。

頂上はめっちゃ寒かったけど、夜景はとても綺麗で行ってよかった!

函館山からの夜景
手ブレが寒さの本気を出している夜景


初参加者へのTips

初めて参加してみて気づいた、これから初参加する人への小ネタを置いておきます。

✈️ 航空券・ホテルは早めに取ろう

次の開催地と日程は1年前から発表されるので、早めに動くと安く済みます。函館みたいに地方開催だと宿の数も限られるので、本当に早い者勝ち。

🛬 前入りしよう

自分は今回沖縄→函館の長旅(乗り継ぎ含めて8時間ほど)でDay1の朝から移動したので、Day1は最後のセッションしか見られませんでした

前入りすればDay1を朝から楽しめるし、Day0のイベントもあるので、楽しめる時間がぐっと増えます。次回は絶対前入りする。

🧳 ノベルティ用にスーツケースの空きを確保

スポンサーブースでたくさんのノベルティをもらえるので、スーツケースに余裕を持たせておくといいです。Tシャツ、トート、ピンズ、ステッカーなど、想像以上にもらえます。

🏷️ ハンドルネームを作ろう

自分はこれまで本名で参加してきてハンドルネームがなかったんですが、本名って覚えてもらいにくいので、ハンドルネームがあると交流の場で有利です。

ちなみに自分は、Day1のOfficial Partyで出会った同い年の人と一緒に「アカミ」というハンドルネームを考えました!

📅 事前にセッション概要を調べよう

セッションスケジュールは事前に公開されているので、AIに概要を要約してもらったり壁打ちしたりして、行きたいセッションを決めておくといいです。

逆に、行きたいセッションがない時間帯は無理にセッションに行かずブース巡りや休憩をするのもアリ。3日間あるので、ペース配分大事。

🍻 夜のDrinkupを楽しもう

RubyKaigi期間中はスポンサー企業が参加費無料のDrinkupを開催してくれます。Connpassなどのイベントサイトで予約開始時刻をチェックして、争奪戦に勝とう

人気のDrinkupは数分で枠が埋まるので、通知設定しておくのがおすすめです。


おわりに

初めてのRubyKaigiで、Rubyコミュニティの熱さを肌で感じることができた3日間でした。

ブース巡りではいろんな会社の方と交流したり、スタンプラリーでピンズをGetしたり、ノベルティをもらったりして楽しかったです。

セッションは英語が多くて全部は理解しきれなかったけれど、新しい知見が増えてよりRubyへの興味が深まりました。来年までに英語を頑張ります。

イベントでは様々な方々と交流して、Xで繋がったりして顔が広くなった感じがしてよかった 。Kaigi on Railsで再会できる人もいそう。


来年は宮崎で開催されるらしい!

来年は宮崎

…が、自分は新卒研修中で行けなそう…悲しい。

その代わりに10月のKaigi on Railsには参加するつもりなので、そこで会える方はぜひよろしくお願いします!

※この記事は、AI文章校正ツール「ちゅらいと」で校正されています

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?