バージョン1.1で実用レベルに達したJRuby
スクリプト言語のRubyをJVM(Java仮想マシン)上で動かすRubyの言語処理系の実装としてJRubyが提供されています。JRubyは、RubyのスクリプトをJVM上で実行するため、Rubyを直接利用するのに比べて実行速度が遅いという課題がありました。
しかし、2008年4月にリリースされたJRuby 1.1からは本家のRubyを上回る速度が実現され、実用に耐えられるレベルになってきました(参考「パフォーマンス大幅向上の『JRuby 1.1』リリース」)。
JRubyを利用したRuby on Rails(以下、Rails)のことを「JRuby on Rails」と呼びますが、オラクルのユーザー向けSNSサイト「Oracle Mix」は、このJRuby on Railsで開発されるなど、JRubyを利用したRailsアプリケーションは実用に近づいてきたといえます。
編集部注:RubyとRailsについて詳しく知りたい読者は、「Javaから見たRuby on Rails」をご参照願います。
本稿では前編・後編に分けて、JRuby on Railsについて解説します。前編ではRailsのIDEであるAptana RadRails(以下、RadRails)を使い、手軽にJRuby on Railsアプリケーションを体感する方法を紹介します。ToDo管理アプリケーションを構築しながら、RadRailsの便利な機能を紹介していきます。
JRubyはJavaとRubyのイイとこどり?
JRubyとは一言でいうと、100% Pure-Javaで実装したRubyの実装系のことです。ここ数年、JRubyプロジェクトは精力的に活動しています。
2006年9月に米サン・マイクロシステムズがJRubyのコミッタであるCharles Nutter氏、Thomas Enebo氏を雇用したあたりから開発ペースが上がり、2007年6月にJRuby 1.0、2008年4月にJRuby 1.1がリリースされています。なお、2008年4月18日現在で最新版であるJRuby 1.1はRuby 1.8.6と高い互換性を誇っています。
JRubyの特徴・メリット
JRubyの大きな特徴は、JavaからRubyを、RubyからJavaを相互に呼び出すことができることにあります。
また、JRubyプロジェクトでは処理速度のチューニングにも積極的に取り組んでおり、本家Rubyのバージョン1.8.6を上回るパフォーマンスが実現しているそうです(参考「『本家Rubyより速い』、JRuby開発者に聞く」)。そしてJRubyを利用することのメリットとしては以下が挙げられます。
・JRuby on Railsを使い、開発時において高い生産性を望める
・実行環境がJVMであるため多くのミドルウェアをサポートし、運用時の安定が望める
すなわち、JRubyはJavaとRubyのお互いのメリットを有効に活用できるテクノロジだといえます。
JVM上で動作するスクリプト言語は多様
また、近年JavaではJRuby以外にもPythonのJavaの実装系であるJythonや、JVM上で動作するスクリプト言語であるGroovy、BeanShell、Pnutsのようにスクリプト環境の選択肢の増加が進んでいます。
編集部注:Groovyそのものについて詳しく知りたい読者は、連載J2EE Watchの第3回「標準化進む新スクリプト言語“Groovy”」を、JVMで動くスクリプトについては「これは使える!Java風スクリプト」を、それぞれご参照ください。
JRubyのキラーアプリケーションJRuby on Rails
JRubyに興味を持つユーザーにとって、最も扱ってみたいアプリケーションはRailsでしょう。
誕生した年がJavaとほぼ同時期のRubyが、近年大きな注目を浴びているのは、やはり飛ぶ鳥を落とす勢いがあるRailsの登場によるところが大きいでしょう。Railsは「DRY(Don't Repeat Yourself)」や「CoC(Convention over Configuration)」といったキーワードをコンセプトに高い生産性を誇ります。そしてJRubyは、そのRailsを実行できるため、まさしく「JRuby on Rails」を実行できるということになります。
RailsをJRubyで実行することで、TomcatのようなJavaアプリケーションサーバ上でRailsを実行したり、JDBCドライバを利用し対応DBを増やすことができます。JRubyのActiveRecord-JDBCがサポートするRDBMSには、以下があります。
・MySQL
・PostgreSQL
・Oracle
・Microsoft SQL Server(一部を除く)
・DB2
・FireBird(一部を除く)
・Apache Derby(一部を除く)
・HSQLDB
・H2
さらには、JMX(Java Management Extensions)を利用し運用監視をしたりと、Railsを動かすうえで、有意義な拡張ができます。
スクリプト言語開発でも、やっぱり開発環境は大事!
Javaでは、EclipseやNetBeansなどのIDE(統合開発環境)を利用している人が大多数を占めていると思います。IDEの登場により、Javaプログラマーの負担は大きく減ったことでしょう。
編集部注:NetBeansそのものについて詳しく知りたい読者は、「Eclipse対抗馬の本命!? NetBeansとは?」をご参照ください。
JRubyのようなスクリプト言語を開発する際にもIDEを使うことができれば、以下のようなメリットを享受できます。
シンタックス(文法)チェック
スクリプト言語にはコンパイラは存在しません。そのため、シンタックスが正しいかは実際にプログラムを動かしてみないと分かりません。IDEを使うことで、プログラムを動かさなくても、エディタ上でシンタックスエラーをチェックできます。
コーディングアシスト
普通のテキストエディタの場合、クラス名やメソッド名は言語のリファレンスを見ながら入力します。IDEを使えば、クラス名やメソッド名を補完できます。
デバッグ
スクリプト言語でデバッグを行う場合は、通常プログラムにPrint文を実装して値を表示させて行います。また、コマンドラインで使えるデバッガも存在します。しかし、ブレークポイントの設定や変数表示はコマンドラインで命令を行う必要があり、使うこと自体が困難です。
IDEでは、GUIベースでブレークポイントを仕掛けたり、実行時の変数一覧を確認できます。
次ページでは、EclipseベースのRuby開発環境Aptana RadRailsとは何かについて簡単に触れ、インストール&日本語化する方法を解説し、いよいよJRuby on Railsアプリケーションを作成し始めます。
Copyright © ITmedia, Inc. All Rights Reserved.