Alumina-VM Project

Ruby系統の動的な言語の実行環境としては、何といっても年季が入っているsmalltalkVMがすごいみたいですが、これは、そのsmalltalkVMの上でRubyを走らせようというプロジェクトです。まだ始まったばかりで結果は何もないのですが、非常に楽しみなプロジェクトだと思います。

何が嬉しいかと言うと

  • 速い(JITがあるしsmalltalk-VMと現状のRubyを比較して、30倍のスピードアップが期待できる?)
  • Rubyで書かれたRubyになる
  • 速く商用レベルのOODB(Gemstone Ruby)がおまけに
  • ネイティブスレッドで動くRuby

過去にも、Java-VMやドットネットVMRubyを動かす試みがありましたが、これが違うのは、ベースとなるシステムのオブジェクトシステムが、Rubyのそれとあまり乖離してない所です。Designというページには、smalltalkRubyの違いで問題点となりそうな所がリストアップしてありますが、根が深い問題になりそうなのは、MixinとThreadくらいですね。

Threadは、ネイティブスレッドになることで、速くなる代わりに微妙な動きが変わってくるでしょうが、これはしょうがないし、それに見合う価値があると思います。Mixinは、調整するのにある程度苦労しそうな所ですが、多少の試行錯誤はあっても、互換にできないことはないでしょう。

もうひとつ重要なポイントが言語処理系と密接に関係した高機能IDEで、これもsmalltalk開発環境の昔からの得意技の一つです。処理系にくっつくということは、エディターが扱うものがソースでなく、言語解析済みの構文木になるわけですから、もの凄く賢いリファクタリングブラウザとかが、割と簡単に(普通のRubyプログラミングで)できてしまうわけです。

てゆうか、このプランが問題なく進んだら、「Rubyとは要するに(変態構文を排除した)smalltalkである」ということになってしまうわけで、そうでないとしたら、私が予想してない所で苦労したり頓挫することになるのかもしれません。そのへんは予想できませんが、どちらにせよ、とても面白い試みだと思います。

しかし、もしこのプロジェクトがうまく進めば、Ruby On Rails とかも超便利IDE付き超速JIT付きの、高性能高機能WEBアプリサーバになるわけですね。そういう次元の違う開発環境を普通のプログラマが使えるようになったとしたら、smalltalkという基礎研究が、30年以上かけて花開いたということになるわけで、息の長い話ですね。

私も80年代にsmalltalk青本を読んで、「ぜえええったいありえないけど、こういう環境でコード書いてみたいなー」と思った夢が、(だってその頃は人月COBOLプログラマをしていて、数年後にはコード書き卒業してSEになる運命)20年以上かかってかなうことになるわけで、まあ、しつこい奴があちこちにいるもんだなということですね。