写真●まつもとゆきひろ氏
写真●まつもとゆきひろ氏
[画像のクリックで拡大表示]

 「Rubyはバージョン2.0で、言語としてほぼ完成した」――。東京・目黒雅叙園で2月15日まで開催している「Developers Summit 2013」で、Rubyの生みの親であるまつもとゆきひろ氏(写真)はこう宣言した。

 Ruby 2.0は、Ruby生誕20周年を記念して、2013年2月24日にリリースする予定の新バージョン。まつもと氏は講演の中で、バージョン2.0の新機能を披露するとともに、Rubyの今後についても言及した。「言語を壊さず(互換性を維持した状態で)、これ以上新しい機能を追加するのは難しい」(まつもと氏)ため、言語仕様としてはほぼ完成したと考えているという。しかし「言語は改善を続けなければ死んでしまう。今後もRubyの実装をより高速化したり、マルチコアへの対応を強化するするなど、互換性を維持した形でRubyをより良くしていきたい」考えだ。

 今回の講演ではRuby 2.0の新機能のうち、まつもと氏が「自分で気に入っている」4種類を解説した。メソッドの引数にラベルを付けられる「キーワード引数」、メソッドの拡張を容易にした「Module#prepend」、関数型プログラミングの遅延評価を可能にする「Enumerable#lazy」、スコープを限定してクラスを拡張できる「Refinements」である。

 例えば、キーワード引数の機能を使うと、引数の数が多いメソッドを使いやすくなる。「繰り返し回数は5番目の引数に指定して」というように、引数の順番を考える必要がなくなり、「繰り返し回数は、repeatというラベルを付けて引数として渡す」というように名前を付けて扱えるようになる。ラベルを付けた引数はどの順番で渡しても構わない。