今月末にバージョン1.0リリース
「本家Rubyより速い」、JRuby開発者に聞く
2007/05/10
PythonやRubyといった動的言語が人気だが、サン・マイクロシステムズは、そうした動きをJavaテクノロジに採り入れつつある。もともとのPythonやRubyはCで実装されているが、Javaによる実装である「Jython」や「JRuby」といった処理系が存在する。Ruby向けに書かれたコードはJVM上で稼働するJRubyでも動作する。同様に、Rubyブームの火付け役となった感もある「Ruby on Rails」(RoR)で構築されたサイトであっても、かなり高い互換性でJRuby上で動作するという。米国サンフランシスコで開催中のJavaOneで、JRubyプロジェクトの中心人物に話を聞いた。
Ruby on RailsもJVM上で稼働
現在、JRubyは6人のコア・コミッターと30〜35人のコミュニティメンバーによって開発が進められている。6人のコア・コミッターのうちの2人、チャールズ・ナッター(Charles Nutter)氏とトーマス・エネボー(Thomas Eebo)氏は、2006年9月にサン・マイクロシステムズに社員として迎え入れ、現在はフルタイムでJRubyの開発に取り組んでいるという。
「2004年のRubyConfに参加してRubyがおもしろそうだなと思ったのがRubyとの最初の関わりです。ただ、Rubyに興味があったのに、Javaで実装するということになって、今ではJavaばかり使っています(笑)。 サンに入る前は、JRubyは週末だけのプロジェクトだったのが、平日も週末もフルタイムでJRubyに関わることになると、もしかして自分は興味を失うんじゃないかとも思っていましたが、ますます仕事が楽しくなっています」(トーマス・エネボー氏)
今月末にバージョン1.0を正式にリリースするというJRubyだが、本家のRuby1.8との互換性は高い。「互換性には気を遣っています。自分たちで作成したテストツールで互換性の検証をしています」(エネボー氏)といい、RoRで書かれたコードも、サンのJavaアプリケーションサーバ「GlassFish」上で稼働するという。
Rubyには、本家のRubyとJRuby以外にも、高速処理を売りにしたYARV(Yet Another Ruby VM)という実装もある。Rubyは言語仕様が明確にドキュメント化されていないため、こうしたRuby仮想マシン間の互換性を懸念する声も出ていたが、「サンで作成したテストツールは、Rubyコミュニティに提供するつもり」(エネボー氏)といい、互換性に関する心配は杞憂となりそうだ。サンはこれまでにも、Rubyコミュニティに対してソースコード保存用のサーバや、開発ツールなどを提供しており、RoRで注目を集めたRubyが、サンによるJRubyへのコミットメントによってさらに広範囲の注目を集めそうだ。特に商用利用に関して言えば、「Java EEのライブラリやJavaクラスを、Rubyの文法で自然に使えるように作業を進めている」(エネボー氏)というのはJava開発者にとっても、Rubyの文法に慣れ親しんだ開発者にとっても朗報だろう。
処理速度のチューニングも進んでいる。JRubyは高速実行を目指したYARVと、「ほぼ同等か、テスト項目によってはやや遅い程度の速度」(エネボー氏)といい、本家のRubyよりは確実に速いとしている。
「動的言語はヘルメットを付けずに走るバイクのようなもの」
JRubyやJythonといった人気の言語がJavaプラットフォーム上で動くとなると、Java言語の位置付けにも影響を受けるのではないかという疑問が出てくる。この疑問に対して、Javaの生みの親であるジェームス・ゴスリン(James Gosling)氏は、「RubyやPythonといった動的言語はHTMLを生成するのに適した言語だが、それがコンピューティングのすべてではない」とコメントしており、例えば、NASDAQの電子取引では1秒間に約15万のトランザクションをJava EEで処理しており、そうした用途ではJavaのスケーラビリティや柔軟性、セキュリティが勝ると指摘する。
「動的言語を使うのは、ヘルメットを付けずにバイクで走るようなものだ。そのほうがヘルメットを付けてから走り出すよりずっと速いが、コードの安全性や保守性といった面では問題を抱えることになる」(ゴスリング氏)
用途や開発規模によって使い分けられる言語の選択肢が増えるのは、開発者には朗報だ。いずれにしても、Javaプラットフォームは、もはやJava言語だけが動く環境ではない。
関連リンク
情報をお寄せください:
TechTargetジャパン
- Excelでプログラム作成を始めるメリットとマクロの基本 (2014/2/5)
そもそもプログラミングとは何か、VBAとマクロの違い、マクロの作り方、保存/削除、セキュリティ設定など - プリプロセッサでプログラムの質を向上させよう (2013/9/17)
Cの機能の1つにプリプロセッサがあります。プリプロセッサを使いこなして、プログラムの質をぐっと向上させましょう - PHP 5.5のポイントと「いい感じ」の使い方 (2013/8/20)
2013年6月20日に公開されたPHP 5.5の言語仕様や注目すべき改変点を一気に紹介。実行エンジンの挑戦的な取り組みも知っておこう - コントローラとモデルをリファクタリングする (2013/5/28)
前回は既存Railsアプリのコントローラにテストを書きました。それを元に今回はリファクタリングの実例を紹介します
|
|
- WordPressカスタマイズ&ショートコード作成超入門
- 仕様と違う!!! そんなときのワンフレーズ
- WebGLアプリをPhoneGapを使ってAndroid/iOS化
- 安全なオンラインアップデートってどうすべきだろう?
- 米IT起業家らも注目の「マインドフルネス」って何だ?
- あなたは“腐ったミカン”です
- Dreamweaverで始めるWordPressサイト構築の基本
- 「プライベートクラウド」という言葉は要らないのか
- Winタブレットでレジューム時のパスワード入力を省く
- 本当に自社に合う“IaaS選びの鉄則”とは?
- 第11回 アプリに広告を出す(後編: 実践編)
- その性能要件は消滅しました(えっ!?)
キャリアアップ
- - PR -
イベントカレンダー
転職/派遣情報を探す
**先週の人気講座ランキング**
〜 Android編 〜
ホワイトペーパー(TechTargetジャパン)
「ITmedia マーケティング」新着記事
カートを放棄したユーザーへのリマインドメール、ひょっとすると逆効果?
ECサイト運営者にとって、ショッピングの途中でカートを放棄するユーザーの率はできるだ...
ADK、若者自らが若者をマーケティングする「関西ワカスタ」を設立
アサツー ディ・ケイは2月10日、若者自らが若者をマーケティングする「関西ワカスタ」を...
Google、モバイル分野で商品リスト広告が躍進
Googleが提供する商品リスト広告が大きく伸びている。2013年第4四半期における商品リスト...