数値計算や記号処理に適用範囲拡大
笹田講師らRuby安定版「1.9.1」投入
高速エンジンの採用で使いやすさ向上

Rubyの公式ロゴ

プログラミング言語「Ruby」の新バージョン「1.9.1」がリリースされた。1.9系では初めての安定版である。プログラムの実行エンジンとして創造情報学専攻の笹田耕一講師が開発したバーチャルマシンYARV(Yet Another Ruby VM)の高速版を標準装備したことから、高速化のメリットが出てくる。高速化はRuby の活用範囲を拡大するための大きな課題の1つだったが、実行エンジンを取り替えることでこれを可能にした。これまで、速度を理由にRuby 以外の言語で記述しなければならなかったプログラムを、Ruby で書くことができるようになるといった利点がある。このような改良はRuby の利用拡大に弾みをつけることになる。

 笹田講師はRuby開発コアメンバーの1人。同講師が開発した高速版のYARVは、従来のインタープリタのモデルをガラッと変えて、高速化しやすいフレームワークを取り入れて高速化を実現した。ベンチマークテストの結果では、数倍速いものもあるが、すべての面で高速化の底上げを図るよりも、バグのない安定化を最大の目標に置いたと背景を明らかにしている。

 Ruby 1.9.1では、プログラミング言語の中で文字列エンコーディング(文字の符号化方式)を複数同時に扱えるようにしたのが特徴だ。現在、符号化方式はUnicodeに統一する流れが大きいが、1.9.1では、複数の符号化方式を選べるので使い勝手が向上する。符号化方式を複数選べるものはあまり例がないことから、柔軟な文字列エンコーディングの処理を行うことができるという。しかし、複数の符号化方式を扱えるようにしたことで、使い方によっては高速化のメリットを発揮できないこともある。そのほか、科学技術計算という中枢部分への適用はまだ無理だが、整数が中心の数値計算や記号処理には高速化の効果が強く表れる。

 1.9系の最初のバージョンである1.9.0は、2007年12月にリリースされた。これは開発版という位置付けで、バグの修正処理や使い勝手の向上などの要求が出てきた。そこで、笹田講師をはじめ、Rubyコミュニティのメンバーは、こうした要請に応えるために、多数のバグの修正を行うとともに、問題点を1つずつつぶす作業を展開し、安心して使えるものに仕上げた。

 1.9.1では、安定化に最重点を置いたために、高速化したいのに手を付けなかった部分も残されており、次のバージョンで全体の速さの底上げと安定化を実現したいとしている。バーチャルマシンの高速化技法についても、各種候補があるため、YARVに適用できる技法を検討していく考えだ。

 Ruby1.8系は2003年にリリースされて以来、幅広く利用されている。1.8系も継続して提供することになっており、1.8.8は2009年中にリリースされる見通し。

ISTyくん