【レポート】

JavaOne 2006 - JavaとRubyの素敵なコラボレーション JRuby最新動向

米San FranciscoのMoscone Centerでは、16日(現地時間)よりSun Microsystemsの主催で2006 JavaOne Conferenceが開催されている。JavaOne Conferenceでは、Javaプラットフォーム単体だけでなく、Javaに関連した非常に広い範囲の技術が話題にのぼる。その中でも、スクリプト言語とJavaのコラボレーションという話題は、今年のJavaOneでは特に注目されているテーマのひとつといえるだろう。Javaとスクリプト言語の組み合わせと言えば、JRubyも当然その一例である。会場の一画ではJRubyの開発者であるThomas Enebe、Charlie Nutter両氏によるテクニカルセッションが行われた。

同セッションでは、まずRubyについて簡単に説明した上で、JRubyの開発コンセプトや特徴などを紹介した。JRubyは100% Javaで実装されたRubyの実行系で、GPL/LGPLまたはCPLで公開されているオープンソースソフトウェアである。Rubyは非常に優れたオブジェクト指向スクリプト言語で多くのWebアプリケーションプログラマの支持を得ており、そのRubyとJavaをコラボレーションさせることで、両者の利点をうまく組み合わせて利用できるようにしようというのがJRubyのコンセプトとなっている。

現在のJRubyは次のような機能を備えているという。

  • RubyスクリプトにJavaのクラスをインポートできる
  • Rubyの型とJavaのクラスを自動的にマッピングする
  • メソッド名にRuby風のエイリアスをつける
  • Rubyの標準メソッド
  • JavaのインタフェースをRubyスクリプトで実装できる
  • Rubyスクリプト上からJavaのコードを利用できる
  • Rubyの標準ライブラリを利用できる
  • RubyのスレッドとJavaのスレッドを同一に扱うことができる

JRubyを使用すれば、Rubyのシンプルな文法でJavaの豊富なクラスライブラリを利用できるほか、Javaプログラム内でRubyスクリプトを実行することもできるため、Rubyの持つ高度なテキスト処理能力やクロージャなどといったスクリプト言語特有の機能がJavaVM上で利用できるようになる。ただし、現段階ではまだRubyスクリプトからJavaバイトコードへの変換は実装されていない。

JRubyに関してこの日最も注目度が高かったのは、何といってもRuby on Railsへの対応である。Rubyはもともと優れたスクリプト言語であるが、そのRubyの知名度を一気に引き上げたのがRuby on Railsだと言えるだろう。Rubyの実装系であるJRubyでRuby on Railsが使用できるかどうかは、以前よりJavaおよびRubyユーザの間で興味の対象となっていた。

結論から言えば、3月末にリリースされたバージョン0.8.3において、100%でないながらもRuby on Railsへの対応が行われている。セッションでは、JRuby上でRuby on Railsを使用してWebアプリケーションを作成するデモンストレーションが行われた。図.1、図.2はその様子である。これは料理のレシピをオンラインのデータベースで管理するというアプリケーションで、少し地味なデモではあったが、Ruby on Railsの特徴を活かして非常に簡単に構築することができる。

図.1

図.2

ただし、Ruby on Railsに関してはまだ課題が多数残されており、現段階ではごく限定された機能しか利用できないという。Ruby on Railsが使用できるかどうかがJRuby普及の大きな鍵となることは間違いないため、今後の発展に期待したい。

その他、セッションではJRubyの今後の展望についても紹介があった。短期的な課題としてはRuby 1.6へのより高い互換性の確保や、Continuationのサポート、インタプリタの最適化(高速化)などが挙げられた。また、中期的な課題としてRuby 2.0の新機能のサポートやM:Nスレッディングのサポート、複数VMのサポート、JRubyバイトコードコンパイラの高速化などが、長期的な課題としてはJavaバイトコードのコンパイルやtail callのサポートなどが挙げられた。

Javaプラットフォームではスクリプト言語のサポートを強化しつつあり、そのためのAPIとして今年10月にリリース予定のJava SE 6ではJSR 223: Scripting for the Java Platformが、その次のJava SE 7ではJSR 292: Supporting Dynamically Typed Languages on the Java Platformがサポートされる予定となっている。また、Java SE 6にはJavaScript実装系であるRhinoが標準で搭載される。このような状況の中でJRubyがどういった方向に進むのか、目が離せない。



転職ノウハウ

あなたが本領発揮できる仕事を診断
あなたの仕事適性診断

シゴト性格・弱点が20の質問でサクッと分かる!

「仕事辞めたい……」その理由は?
「仕事辞めたい……」その理由は?

71%の人が仕事を辞めたいと思った経験あり。その理由と対処法は?

3年後の年収どうなる? 年収予報
3年後の年収どうなる? 年収予報

今の年収は適正? 3年後は? あなたの年収をデータに基づき予報します。

激務な職場を辞めたいが、美女が邪魔して辞められない
激務な職場を辞めたいが、美女が邪魔して辞められない

美人上司と可愛い過ぎる後輩に挟まれるエンジニアの悩み

人気記事

一覧

イチオシ記事

新着記事

求人情報