TOP
>
システム開発
> JRubyが注目される理由
JRubyを知る!
第1回:JRubyとは?
著者:
アスタリクス 大西 正太
2007/9/3
前のページ
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の利用は下記のようなメリットを期待されています。
ミドルウェアに枯れた技術であるJavaを使うことでパフォーマンス・安定性を獲得する
アプリケーションをRuby/Rails上に作ることで生産性の確保ができる
豊富なJavaライブラリをRailsから利用することができる
表1:JRubyを利用するメリット
つまりJRubyを用いることで、Ruby陣営の課題であるパフォーマンスや安定性の問題と、Java陣営の課題であるEoDの両方を満たせる可能性があるわけです。これがJRubyが注目されている理由であると考えられます。
Javaオフィシャル化するJRuby
JRubyの簡単な歴史を表2にまとめまてみました。
年月
出来事
2001年
JRuby初公開
2006年10月
コミッタのCharles Nutter氏、Thomas Enebo氏がSun MicrosystemsにJRuby開発者としてフルタイムで雇用
2007年6月
JRuby1.0の公開
表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つの形式での連携が可能です(模式図なので、実際の動作とは異なる部分があります)。
図2:JRubyとJavaの連携形式
(画像をクリックすると別ウィンドウに拡大図を表示します)
このように、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
次のページ
著者プロフィール
株式会社アスタリクス 大西 正太
JavaEEフレームワークの設計構築や開発プロセス策定などの業務を経て、現在は新規ビジネス創生に携わる。Ruby on Rails上に構築したオープンソースのCMS「Rubricks」(http://rubricks.org/)のコミッタ。
INDEX
第1回:JRubyとは?
はじめに
JRubyが注目される理由
JRuby周辺プロダクト