Rubyの種類

今日の授業で受講者の方からRubyの実装が何種類あって、
VMがいくつあるのかという質問を受けた。
もちろん、JVM 上で動作する JRubyCLR 上で動作する IronRuby などが
出てくると思うのだが、Rubinus などどいうスピード重視のRuby VMがあるらしい。


これについての情報をうまくまとめたPDFがあるのでそちらを紹介したい。

http://ociweb.com/mark/NFJS/JRuby.pdf

これを見ると下記のようにうまく整理されている。


■ Matz Rubyhttp://www.ruby-lang.org/ja/
いわゆる現行のC言語で実装された Ruby
作成者のまつもとゆきひろさんはあまりに有名と言えば、有名。


YARV(Yet Another Ruby VM): http://www.atdot.net/yarv/
今後標準のRubyのVM(Virtual Machine)となることがほぼ決まっている実装。
スピードを重視している模様。平均2倍くらい速くなっているという話しもある。
笹田浩一さん作。C言語で実装されている。
ちなみに授業をしている笹田さんが今授業をしている上の階で働いていることは秘密です(笑)。

書いていて、確か、The Ruby VM (TRV?)に変わったはずだなと思った。


■ Rubinius : http://rubini.us/
Evan Phoenix作。
現行のRubyの場合、基本ライブラリ(String,Array,Hash・・・etc)の大半はC言語
実装されている。
しかし、Rubinusの場合は基本ライブラリはRubyで実装しようという方針(Smalltalk的方針と呼ぶみたい)。
こちらもC言語でVMを書き、実行速度を重視しているらしい。


IronRuby
.NETのCLR(Common Language )上で動作するRuby
7/25日にマイクロソフトから初期バージョンがリリースされた模様。

http://japan.cnet.com/news/ent/story/0,2000056022,20353351,00.htm?ref=rss


JRuby
JVM上で動作するRuby
作者のThomas Enebo氏とCharles Nutter氏の JRuby 兄弟はあまりにも有名。
JRuby兄弟はSun社員。
Thomasは来日されたときにご挨拶させていただいたが、非常に気さくで良い方だった。


■ ブリッジ系
□ Rjb
通常のMatz RubyJavaをブリッジするライブラリ。
arton先生作。
使わせていただいています。
ちなみにarton先生は、Rubyのサブセット言語であるNET Rubyの製作をしていたらしいのだが、
その後どうなっているかは分からない。


Ruby CLR
こちらは、.NETとMatz Rubyをブリッジするライブラリ
John Lam 作。
Jhonは、マイクロソフトに雇われているらしい。

http://www.iunknown.com/articles/2006/10/20/dynamic-languages-microsoft-and-me


今日はこんな所です。