|
||||||||||
| 前のページ 1 2 3 次のページ | ||||||||||
| JRubyが注目される理由 | ||||||||||
|
では前述したようなJavaを取り巻く動向とJRubyはどのように結びつくのでしょうか。まずJRubyとはどのようなものなのかを説明していきましょう。 |
||||||||||
| JRubyとは | ||||||||||
|
JRubyはその名から想像できる通り「JavaVM上でRuby言語のプログラムを動作させるソフトウェア」です。いわば「プラットフォームとしてのJava」に組み入れられるRubyであると表現できます。 JRubyはCharles Nutter氏、Thomas Enebo氏などが中心となってオープンソースで開発が続けられています。2007年6月にリリースされたJRuby 1.0はRuby 1.8.5に高い適合性を持っており、多くのRubyで書かれたプログラムを実行することが可能です。 |
||||||||||
| JRubyに期待されていること | ||||||||||
|
アプリケーション開発をするという観点において、JRubyの利用は下記のようなメリットを期待されています。
表1:JRubyを利用するメリット つまりJRubyを用いることで、Ruby陣営の課題であるパフォーマンスや安定性の問題と、Java陣営の課題であるEoDの両方を満たせる可能性があるわけです。これがJRubyが注目されている理由であると考えられます。 |
||||||||||
| Javaオフィシャル化するJRuby | ||||||||||
|
JRubyの簡単な歴史を表2にまとめまてみました。
表2:JRubyの歴史 実はJRubyの開発は、Java陣営がEoDやJava言語は可換であるという方向性を打ち出すよりもずっと以前からはじまっていました。一方、ごく最近に主要コミッタ2人がSun Microsystemsに雇用されています。つまりJRubyコミュニティは単純に草の根的なオープンソースソフトウェアとして開発を継続してきて、2006年頃になって自分たちの活動がJava本家の方向性と一致してきたのでその時流に乗ったわけです。その結果、Java陣営のよりオフィシャルなプロジェクトとしてクローズアップされ、急激に注目を集めるようになってきました。 JRubyが現在注目されている理由は先ほど述べた通りですが、開発者に認知されるようになったきっかけとしては、上記のようなJava陣営からの期待と後押しが大きかったように思います。 |
||||||||||
| JRubyの現状 | ||||||||||
|
現在JRubyはようやく1.0がリリースされた段階で、具体的な実績などはまだこれからです。したがって、実用性という点から考えると、安定性の面でまだまだ不安な部分があり、上述してきたような期待に応え切れているとはいえない状態です。またベンチマークにもよりますが、パフォーマンス面でも現在は通常のRubyインタプリタと同程度(または分野によって優れていたり、劣っていたりする)のようです。 しかし開発者達はこれらの問題に本気で取り組んでおり、また現在のJRuby界隈の活気からすると近い将来、これらの問題についても解決されていくに違いありません。 |
||||||||||
| JRubyのアーキテクチャ | ||||||||||
|
JRubyのアーキテクチャがどのようなものなのか簡単に説明します。 |
||||||||||
| JRubyとJavaの連携形式 | ||||||||||
|
JRubyとJavaは図2のように、2つの形式での連携が可能です(模式図なので、実際の動作とは異なる部分があります)。 このように、JavaからRubyを呼び出すことや、逆にRubyからJavaの呼び出しができます。開発者のバックグラウンドや実行環境の都合に応じてどちらの言語を主としてソースコードを記述するのかを選ぶことができ、これによって利用の障壁を低くしています。 |
||||||||||
| JRubyの実行形態 | ||||||||||
|
現在のJRubyはデフォルトでインタプリタとコンパイラが併用されます。これはJIT(Just In Time)方式と呼ばれます(図3)。 ![]() 図3:JITのイメージ 基本的にはコンパイルを行って成功すればそのバイトコードを、失敗したらインタプリタ上で動作します。つまりJRubyの開発が進んでコンパイラが対処できるコードが増えていくとパフォーマンスが向上していくような作りになっているわけです。この構造でJRuby上で動作可能なアプリケーションを確保しつつ改善を続けていくインクリメンタルなリリースを実現することができるのです。 もちろん普通にコンパイルすることもできます。その場合jrubycコマンドを使ってRubyソースコードを指定し、コンパイルに成功すればJavaの.classファイルが生成されます。いくつかのJRubyライブラリにクラスパスを通せば普通のJavaクラスとしてjavaコマンドから利用することが可能です。 |
||||||||||
|
前のページ 1 2 3 次のページ |
||||||||||
|
|
||||||||||
|
|
||||||||||
|
||||||||||
|
|
||||||||||
|
||||||||||
|
|
||||||||||
|
||||||||||



