ASIPの徒然なるままに このページをアンテナに追加 RSSフィード

2007-05-17

何故、今、Rubyに注目するのか? 09:45 何故、今、Rubyに注目するのか?を含むブックマーク 何故、今、Rubyに注目するのか?のブックマークコメント

Rubyの実行速度が大きく改善されようとしているからです。

いくら言語仕様が良かろうと実行速度が遅ければ、個人的には

注目に値しません。

Matz氏が2000年(平成12年度)の未踏でRuby実装のVM化の実験を

開始してからRuby実装のVM化をずっと待っていました。

もっと早くRuby実装のVM化が実現されると思われたのですが、2000年

の未踏以降、Matz氏によるRuby実装のVM化は停滞し、消滅したかの

ようにみえました。

諦めかけていた頃、ko1(笹田)氏が2004年の未踏ユースにてYARV

実装を開始。徐々にYARVの改良が行われ、去年2月の0.4リリースで

Ruby1.8系のほぼ全機能が実現されました。

去年6月のRuby会議Matz氏の発表にて2.0へのYARV採用の方向性

が示され、去年11月にRuby1.9系へのYARVのマージが行われました。

RubyVMの誕生です。

RubyVMはPHPと同様に動的にコンパイルを行い生成されたバイトコード

を実行するので利用者が実行環境がインタープリタVM(バイトコード

インタープリタ)かを意識することはありません。

Javaの場合、素のVM->JIT->AOTの順に改良が行われ、パフォーマンス

が改善されてきました。

次世代Rubyは今、素のVMの段階です。ただし、VMの技術自体は日々進歩

しているので、Javaの初期実装よりはずっとパフォーマンスが良いと思います。

(JavaバイトコードRubyバイトコードは特性が異なるので単純には比較

できません...。)

JITAOTの技術を用いたVMの改良は1.9.1リリース後の中長期ターゲット

になると思われます。

蛇足となりますが、現時点での実行速度においてJavaVM>>RubyVMで

あることは間違いありません。

Ruby(VM)はCで作成されたモジュールによる言語?拡張をサポートしている

ので、実行速度においてネックとなる部分をCで記述、アドオンするようにする

ことで実行速度をJavaで作成されたアプリと遜色ないレベルまで引き上げる

ことは可能となっています。

Javaはかっちり作り込みを行う領域向け、Rubyはプロトタイピングしながら

作り込んでいくような領域向けと利用領域(層)が異なることを付記しておきます。

#JavaRubyのどちらが優れているかなんてことは考えていません。

#堅い言語としてJavaにコミット、柔らかい言語としてRuby及びJavaScript

#注目しています。