Machine)は、コンパイルされたJava中間コードを実行する環境である。いうことは、ソースコードがJavaである必要はない。他言語のソースプログラムをJava中間コードにコンパイルできれば、それはJavaVMで実行できる。そのようなソフトのひとつにJRubyがある。これは、Ruby言語インタープリタのJavaによる実装である。私はRubyは言語を少々勉強しただけなので、JRubyの存在は最近始めて知った。1.0.0RC3がリリースされた。バージョン1.0の直前版の位置付けのようだ。EJBからSwingまでRubyからJavaを使い倒すくに詳しく述べられている。その特徴は、次のとおり述べられている。1.Rubyの言語仕様に準拠している:Ruby1.8.5を元に、一部未実装や問題がある機能もあるものの、言語仕様を非常に互換性高く実装している。(Rubyのライブラリなどをインストールするためのツール)についてもほとんどが含まれており、Rubyのプログラムの多くがJRuby上で正常に動作する2.JVM上で動作する:JRuby自体は100%Javaで実装された処理系である。したがって、実行するためにはJavaVMがあればよいため、Javaが動作する環境ならどこでもRubyプログラムを動かすことができる(コラム「プラットフォームとしてのJava」参照)3.Javaプログラムと連携できる:JRubyを使えば、Rubyで書いたプログラムからJavaのオブジェクトを利用したり、逆にJavaプログラムからRubyのスクリプトを実行したりすることができるまたその実行速度は、@ITの記事「本家Rubyより速い」、JRuby開発者に聞くによれば、そのタイトルの如く、Cで実装された通常のRuby実行環境より速いそうだ。上記のJRubyの特徴は、想定の範囲内である。速度についても、私の想像どおりだった。RubyやPerlのように実行時にソースコードを解釈して実行するインタープリタの速度が遅いのは当然であり、スピードアップにも限界がある。それを、事前にJava中間言語にコンパイルさえしておけば、最適化や高速実行の研究成果が充分に反映されているJavaVMでの実行が速いのは当然、と思っていたからだった。Railsも完全に動作するようになるらしい。このメリットは大きい。RailsがJRubyで動くことで、その欠点の実行速度の遅さが克服できる。翻って、PythonのJavaによる実装であるJythonは開発が遅い。この数年開発が止まっていたようだが今年の2月ころからまたすこしづつ動き出しているようだ。Python2.2レベルだ。最新のPython2.5対応はだいぶ先だろう。通常のPython実行環境ではなくわざわざJythonを使うメリットはあるのだろうか。私はJRubyほどは存在意義が無いように思う。いうのは、通常のPythonは実行速度が充分に速いので、実行速度の点でJythonを使用するメリットは無い。JRubyの特徴の「3」の、Javaクラスとの連携だろう。それに大きな需要があるとは思わない。JavaクラスをPythonからコントロールするメリットが思い浮かばない。スタンドアローンアプリで画面をJavaのSwingやSWTで構築しそれをJythonから制御する、くらいか。それも、JythonがPython2.4はサポートしてくれないと使いにくいだろう。結局、通常のRuby実行環境が遅いことがJRubyの将来を明るいものにしている、というちょっと皮肉な現象かもしれない。»この記事のトラックバックURL:http://www.momologue.net/archives/17/trackback/コメント投稿(承認制となっております。)名前:(必須)メールアドレス:(必須ですが表示されません)URL:コメント:コメント・トラックバック一覧(0)この記事にはまだコメントがついていません。