2026年4月22日(水)から24日(金)まで、北海道函館アリーナ及び函館市民会館にてRubyKaigi 2026が開催されました。最終日の締めくくりとして、Rubyの作者である、まつもとゆきひろさんより
今回の講演でまつもとさんは、RubyKaigi 2025のキーノート
Too Much To Do
「0から1にするのが好きな人、1から100にするのが好きな人。いろんなタイプの人がいますね」
まつもとさんは、自身の開発スタイルを
しかし、Ruby誕生から30余年、歩んできた時間とともにやりたいことリストは増え続けています。そのやりたいことリストには、mrubyのメモリ管理
ここでまつもとさんは、Linuxを開発したリーナス・
しかし、まつもとさんはAIの発達による風向きの変化を実感したと語ります。RubyKaigi 2025にてまつもとさんは
AI時代への突入
2025年はプログラミングという活動の本質が非常に大きく変わった年だった、とまつもとさんは振り返ります。
10年前から静的型宣言はコンピューターが賢くなるから必要なくなるだろう
「自分でもAIを使ってみなければ、人に諭すことはできない」
「何を作るか、どのように作るか、何の問題を解決するか」
そして、この1年でAIにコード開発を任せた結果の成果物をいくつか紹介しました。
AIとの開発の成果物
Setクラス
組み込みのパフォーマンス改善のため、Rubyで書かれたSetクラスをC言語で書き直すことをAIに任せました。AIから最初に提案された実装は頻繁に落ちてしまう出来でしたが、落ちたケースについて根気強く細かく指示を出し続けたそうです。最終的には、一行もコードを書かずに動くものが完成しました。
カラツバ法
2024年9月にAIを使ってmrubyへのカラツバ法[1]の実装を1ヶ月かけて試みましたが動きませんでした。しかし、2026年1月になりClaude Codeで再挑戦したところ、わずか15分で形になったうえ、さらにToom-3[2]の有効な実装の提案があったそうです。実装を通して感じた直近のAIの賢さの向上度合いについて、まつもとさんは
RSS Reader
RSS Readerは皆さんも使用しているかもしれません。RSS Readerは、お気に入りのブログやニュースサイトの更新情報をまとめてチェックできるツールです。しかし、人気が衰えるとサービスが終了してしまうという特徴があり、まつもとさんが愛用していた有料RSS Readerも閉鎖されてしまったと言います。
ここで、まつもとさんはアイデアを閃くと、自身でRSS ReaderをRailsで製作し始めます。そして、なんと作り始めたその日にプロトタイプは動き始め、最終的に3日から4日という短期間で製作が完了したそうです。
サービス終了から解放されたが、ついフィードを読むことに多くの時間を使ってしまうともらすと、会場は笑いに包まれました。
Regexp
mrubyには独自の正規表現ライブラリがなく、サードパーティー製のライブラリをリンクするという方法を選択することになります。しかし、今なら正規表現エンジンも含めたコンパクトな組み込み可能なものを作れるのではないかというアイデアを投げかけたところ、AIのほうから実装の提案がありました。AIは最終的に、ほとんどがDFAベース[3]で動き、カバーできない部分はNFAのエンジンが動くというReDoS対応の正規表現ライブラリを作成してきました。
このように様々な積み上げられてきたアイデアが一気に片付き始めた、とまつもとさんは振り返ります。小さいアイデアが片付くと、何年も作りたいと思いつつ着手できなかった大きいアイデアに手をつけられるようになります。
そして、今回の講演の目玉である
Spinel
「Spinelは、RubyのAOTコンパイラです」
その一言から、まつもとさんはSpinelを発表しました。
Spinelは講演が始まる直前にまつもとさんが自身のGitHubに公開した新たなプロダクトです。内容は、RubyのAOTコンパイラという説明のとおり、Rubyをよりポータブルで軽量にするための仕組みです。AOTとは、Ahead-of-Time
Spinelの実際の動作は以下のようになっています。
- RubyのパーサーであるPrismを使用して、Rubyコードを抽象構文木
(AST) に変換 - ASTをもとに型推論・
C言語のソースコードを書き出し - Cコンパイラがバイナリを生成
生成されたバイナリはRubyインタープリタ
Rubyがすでに持っているJIT
- Rubyのソースコードやランタイムを全部まとめて1つの実行ファイルに固めてから動作するため、配布が容易であること。
- コンパイル済みバイナリのため起動が速いこと。
- メモリ消費量が少ないこと。
一方、JITコンパイラは実行時情報を活用する分、長時間処理ではAOTよりも優れた速度を発揮します。SpinelはJIT実装の代替ではなく、CIツールやサーバーレス案件、組み込み用途などの場面での活躍が想定されています。また、Spinel自体がRubyで書かれているため、Spinel自身をSpinelでコンパイルするセルフホスティングが可能な点もユニークです。
Spinelは多くの機能をサポートしています。クラス、継承、mixin、ブロック、yield、ラムダ、例外、パターンマッチング、ファイバー、正規表現、多倍長整数などです。さらに、まつもとさんは自身を
一例として、小さいクラスはスタック上にC構造体として配置することで、GCオーバーヘッドを回避するValue-type promotionを紹介しました。その結果、100万個のオブジェクトを割り当てるような処理にかかる時間が85msから2msに短縮されています。また、あまりオブジェクトを使わないような小さなプログラムでは、そもそもGCを使わないといった判断もおこなわれています。
Spinelの性能はライフゲーム、アッカーマン関数、マンデルブロ集合などの多数のベンチマークにて計測されており、minirubyより約11.
詳しいベンチマーク結果は、Spinelのリポジトリにて紹介されています。
一方、AOTコンパイラとしての性能を得るために切り捨てたものもある、とまつもとさんは言います。evalやdefine_といったメタプログラミングで活躍する機能や、スレッド、requireなどがSpinelでは使えません。これらの制限のため、既存の大きなRubyアプリケーションを動かすことはできません。しかし、Spinelは原理的に難しい機能をあえてサポートしないことで、バイナリの小ささと速さを手に入れました。
Claude CodeでSpinelを作り始めてから、全体の書き直しが3回あったというエピソードも披露しました。書き直しの度、成果物が出てくるまでの待ち日数もどんどん短縮されたそうです。また、セルフホスティングの機能を入れたい、ベンチマークの速さを改善したい、メモリ消費量の無駄を解消したいなどのまつもとさんからの大量かつ細かい改善要望にも、生成AIは文句を言うことなく実現してくれます。元々アイデアはあったものの、RubyのAOTコンパイラは実装難易度がとても高いとわかっていたと言う、まつもとさん。今回のSpinelの実現には、パートナーとしての生成AIが重要な役割を担っていたことを繰り返し強調していました。
Spinelの由来
最後に、まつもとさんはSpinelという名前の由来について話しました。
「カードキャプターさくら」
スピネルは古くからルビーと間違えられることの多い宝石として知られていますが、独立した美しさを宿しています。Rubyではないけれど、Rubyに負けない強さを持つ。そんな素敵な想いの込められた名前です。
そして、会場の人々に向け
大きな感謝を
まつもとさんは講演の終わりに、RubyGems.
また、スポンサー企業やRubyコミュニティへの感謝と、これまでの30余年に触れ、

