業務系PaaSで注目のRails、JRubyのゆくえは?
進化したJRuby 1.6、間もなくリリースへ
2011/01/12
JRubyコミュニティは1月11日、バージョン1.6.0の初のリリース候補版「JRuby 1.6.0 RC1」をリリースした。JRubyはJavaVM上のRuby実装で、Windowsサーバへのインストールが容易なことや、Google AppEngineでRuby on Railsを稼働させられることから、最近注目が集まっている。
JRuby 1.6はこれまでで最大のバージョンアップで、主要な機能は、
- Ruby 1.9.2とのAPI互換
- Cによる拡張機能のサポート(実験的実装)
- プロファイラの内蔵
- RubyGems 1.4.2
など。Rubyの言語仕様への適合度をチェックする「RubySpec」による互換性は、1.8モードで99%、1.9モードで90%という。また、もともとJRuby開発にとって大きな達成目標だったRails互換という点では、他のRuby処理系よりも重点をおいていて、日々のナイトリービルドでRails3のテストを実行している唯一のRuby処理系だという。現在JRubyは、Rails3のテストにはすべてパスしている。
JRubyの開発は活発で、過去9カ月で2000以上のコミットがあったという。JRubyコア開発者のチャールズ・ナッター氏による2010年の総括によれば、日本人開発者も2人(Hiro Asari、Hiroshi Nakamura)参加しているという。
現時点で実験的実装であるものの、C拡張のサポートは大きなステップだ。Ruby on Railsに限らず、RubyではCによる拡張ライブラリが数多く利用されている。XMLのパーズや画像処理などのライブラリは、それぞれCで書かれたlibxmlやImageMagickのCによるラッパーとして提供されている。CとJavaのFFIによる呼び出しオーバーヘッドがあるものの、JRuby 1.6では、こうしたライブラリの主要なものが動かせるようになったという。
パフォーマンスについては、JRuby 1.6はさらなる高速化のための下準備が完了したというところのようだ。チャールズ・ナッター氏によれば、JRubyは中間言語を新しいものに置き換える計画で、これにより、従来はできていなかった最適化が可能になる。インタープリタのプロファイラが集める情報に基づいて、動的呼び出しや、個々のメソッド呼び出しのコストを大幅に削減できるようになるという。これまでJRubyでは静的な解析による最適化をJITで行っていたが、Javaや、他のJVM言語のように、実行時のプロファイリング情報に基づく動的な最適化まではしていなかったという。この辺りの事情については、チャールズ・ナッター氏の2010年5月31日のブログエントリが詳しいが、単純なベンチマークで2〜10倍の高速化も可能なようだ。
※初出時、中間言語の置き換えに着手とありましたが、正確には現在まだ作業は始まっていません。また、JITを使った最適化自体はすでにJRubyで行っていて、今後は動的に最適化を行う、ということです(JRuby開発者の1人である中村浩士さんにご指摘いただきました)。訂正してお詫びいたします。
SalesforceのHerokuに続き、ヴイエムウェアが買収?
米EngineYardは、JRuby開発者4人を雇用していて、JRubyの開発やコミュニティの活性化という点で、重要な役割を果たしている。EngineYardはCRuby/JRuby/REE(Ruby Enterprise Edition)をAmazon EC2上で使い、Railsの運用環境を提供するPaaSサービス「AppCloud」を提供している。昨年来、ヴイエムウェアがEngineYardに買収の提案を持ちかけているのではないかというウワサが流れている。
ヴイエムウェアはSpringSource買収や、Salesforceとの協業によるVMforceの提供などで、仮想化ベンダから、クラウド上の開発環境を含めたPaaSベンダとしての立ち位置を強化している。開発環境、ランタイム、サーバ環境などがクラウドへ移行する大きな流れの中で、Javaに続いてRubyへの注目が高まっている。Salesforceは2010年12月に2億ドルでRubyアプリケーションのPaaSサービスとして人気があったHerokuを買収した。EMC傘下のヴイエムウェアが同様の買収を計画していても不思議ではないだろう。
関連リンク
関連記事
情報をお寄せください:
- プログラムの実行はどのようにして行われるのか、Linuxカーネルのコードから探る (2017/7/20)
C言語の「Hello World!」プログラムで使われる、「printf()」「main()」関数の中身を、デバッガによる解析と逆アセンブル、ソースコード読解などのさまざまな側面から探る連載。最終回は、Linuxカーネルの中では、プログラムの起動時にはどのような処理が行われているのかを探る - エンジニアならC言語プログラムの終わりに呼び出されるexit()の中身分かってますよね? (2017/7/13)
C言語の「Hello World!」プログラムで使われる、「printf()」「main()」関数の中身を、デバッガによる解析と逆アセンブル、ソースコード読解などのさまざまな側面から探る連載。今回は、プログラムの終わりに呼び出されるexit()の中身を探る - VBAにおけるFileDialog操作の基本&ドライブの空き容量、ファイルのサイズやタイムスタンプの取得方法 (2017/7/10)
指定したドライブの空き容量、ファイルのタイムスタンプや属性を取得する方法、FileDialog/エクスプローラー操作の基本を紹介します - さらば残業! 面倒くさいエクセル業務を楽にする「Excel VBA」とは (2017/7/6)
日頃発生する“面倒くさい業務”。簡単なプログラミングで効率化できる可能性がある。本稿では、業務で使うことが多い「Microsoft Excel」で使えるVBAを紹介する。※ショートカットキー、アクセスキーの解説あり
|
|
キャリアアップ
- - PR -
転職/派遣情報を探す
「ITmedia マーケティング」新着記事
Instagramでバカ正直に「広告」を明示するとリーチが下がる? 責任者の回答は……
Instagramの責任者であるアダム・モッセーリ氏は、自身のアカウントでの情報発信シリーズ...
Xは? TikTokは? Metaは? トランプ氏勝利で笑うソーシャル、泣くソーシャル
4年ぶり2度目のトランプ政権が実現することで、主要ソーシャルメディア各社はどのような...
「パーソナライゼーション」&「A/Bテスト」ツール売れ筋TOP5(2024年11月)
今週は、パーソナライゼーション製品と「A/Bテスト」ツールの国内売れ筋各TOP5を紹介し...