5年振りのメジャーバージョンアップとなるRuby 4.0正式リリース、クラスの定義などを隔離するRuby Box、新JITコンパイラ「ZJIT」搭載など
Ruby開発チームは2025年12月25日、Ruby 4.0の正式リリースを発表しました。
Rubyは毎年12月25日に新バージョンをリリースすることが恒例となっており、2024年も予定通りに新バージョンが登場しました。しかも今回は2020年にRuby 3.0が登場して以来5年振りのメジャーバージョンアップとなりました。
Rubyはまつもとゆきひろ氏により1993年に開発が始められたプログラミング言語です。シンプルで生産性の高いプログラムを書くことができることなどを特長とし、Ruby on Rails(Rails)と呼ばれるWebアプリケーションを容易に構築できるフレームワークを備えていることで人気のプログラミング言語です。
Ruby 4.0の新機能
Ruby 4.0ではいくつかの言語使用の変更なども行われましたが、特に大きな新機能となったのは次の2つです。
Ruby Box
Ruby Boxはクラスなどの定義の分離や隔離のための機能を提供する、実験的機能です。
Boxの中で読み込まれた定義はそのBox内に閉じた状態となります。
Ruby Boxが隔離できる定義は、既存クラスへのモンキーパッチ、グローバル変数やクラス変数の操作、クラスやモジュールの定義、そして.rbファイルや拡張ライブラリとして実装されたライブラリ類です。
Ruby Boxの主要なユースケースとしては、次のものが想定されています。
- テストのために何かの挙動を上書きするようなモンキーパッチを必要とするテストケースをBox内に閉じて実行すること
- WebアプリケーションをBox内で実行することで、Blue-Greenデプロイメントをプロセス内で、アプリケーションサーバ上で実行すること
- WebアプリケーションをBox内で実行することで、依存関係の更新時などに、一定期間並列で動かしてRubyコードを用いてレスポンス等を検証すること
- (未設計の)「パッケージAPI」のような新しい高レベルAPIを作るための低レベルAPIとしての機能を提供すること
Ruby Boxは環境変数として「RUBY_BOX=1」を指定することで有効化できます。クラス名は「Ruby::Box」です。
新JITコンパイラ「ZJIT」搭載
YJITの開発チームが開発した、実験的なメソッドベースの新しいJITコンパイラ「ZJIT」が搭載されました。
YJITコンパイラはRuby 3.1でメインラインにマージされたJITコンパイラで、ECサイト構築サービスを提供するShopifyが大規模なRailsアプリケーションにおいてより高い性能向上を目指して開発しました。
ZJITはそのYJITコンパイラの後継として、さらなる性能向上を目指しています。
ただし現時点ではZJITはYJITほど高速ではないとされており、また本番環境での利用も避けた方が良いとのことです。
ZJITサポート付きでRubyをビルドするにはRust 1.85.0以降で「–zjit 」を指定するとZJITが有効になります。
あわせて読みたい
GmailでPOP3によるメールの集約機能が終了、対策としてFastmailを採用。さくらインターネットのドメイン設定を変更など
≪前の記事
PublickeyのIT業界予想2026。メモリ高騰による消極的なクラウド選択、AIエージェントを前提とした開発方法論、Rust採用の広がりなど

