1. Ruby2.0 がやってくる!
2013/02/22 シナジーマーケティング(株) 鈴木 圭
[Ruby 2.0] 第1章 Ruby2.0 がやってくる!
- 1.1. Ruby2.0 がやってくる!
- 1.2. Ruby2.0 の新機能
- 1.3. 互換の無い変更点
- 1.4. まとめ
1.1. Ruby2.0 がやってくる!
Ruby2.0 がやってきます。
リリース予定は2013年2月24日、Ruby の 20歳の誕生日です。
- 2012-11-02 ruby-2.0.0-preview1 リリース
- 2012-12-01 ruby-2.0.0-preview2 リリース
- 2013-01-08 ruby-2.0.0-rc1 リリース
- 2013-02-08 ruby-2.0.0-rc2 リリース
- 2013-02-24 ruby-2.0.0 リリース予定
Ruby といえば「最近のスクリプト言語」というイメージが強いかもしれませんが、この世に生まれてから 20 年にもなります。
1.2. Ruby2.0 の新機能
Ruby 公式サイトのアナウンスでは、Ruby2.0 の新機能として以下の項目が挙げられています。
- キーワード引数
- Enumerable#lazy
- Module#prepend
- #to_h: Hash への変換メソッド
- %i: シンボルの配列のリテラル
- 正規表現エンジンを Onigmo に変更(鬼雲: 鬼車の派生版)
- Enumerator#size が導入された
- DTrace サポート
- TracePoint
- require 速度の向上(特に Windows において)
- NativeClient サポート
- ドキュメントの改善
- 非同期割り込み制御機能の改良
- 起動時のスタックサイズ設定機能
- Refinements [実験的機能]
Ruby2.0 は Ruby1.9 と 100% 互換を目指して開発されただけあって、Ruby1.8 から Ruby1.9 になった時と比較するとインパクトのある変更は控えめという感じです。
その一方で、キーワード引数の導入や Enumerable#lazy による遅延評価のサポート、Module#prepend による新しいモジュール拡張など注目機能も登場します。
他にも小さな機能強化は多数行われています。例えば二分探索を行う Array#bsearch メソッドの追加や GC の性能改善、Syslog::Logger の追加、シンボル配列用のリテラル表記 %i %I の追加などがあります。
1.3. 互換性の無い変更点
Ruby2.0 は Ruby1.9 と完全互換ではなく、いくつか互換性の無い変更も存在します。公式のアナウンスでは特筆すべき非互換として以下の項目が挙げられています。
- デフォルトのエンコーディングが UTF-8 に変更。ただしパフォーマンスに大きな影響があるかもしれず、公式リリースまでに変更される可能性があるとのことです。
- 標準添付ライブラリの iconv の削除(Ruby 1.9 時点で非推奨)。代わりに Ruby2.0 からは String#encode メソッドを使用します。
- ABI (Application Binary Interface) の非互換。
1.4. まとめ
本章では Ruby2.0 の概要をご説明しました。次回以降の章では個別の機能をピックアップしてご紹介します。