BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース JRuby総まとめ: JRuby on EY AppCloud, JRuby-Lint, JRuby Delegates

JRuby総まとめ: JRuby on EY AppCloud, JRuby-Lint, JRuby Delegates

原文(投稿日:2011/05/30)へのリンク

数週間前、RubiniusがEngineYardのAppCloudに登場した。そして今、JRubyがAppCloudのRubyの1バージョンとして利用可能になった。EngineYardのNic博士は次のように説明する。

JRubyを求めていた顧客には2つのタイプがありました。
  • Javaライブラリを組み込むことを望んでいるアプリケーション
  • MRIが提供できない機能を求めている開発者 – 真のスレッド、最新のガベージコレクタの選択、インプロセスキャッシング、利用可能なメモリのフル活用など。
Jrubyのサポートを実現する上で重要な要素になったのはTrinidadです。Trinidadを使うと、RailsやRack互換アプリケーションをEmbedded Apache Tomcat内で走らせることができます。これはEngine YardのDavid Calavera氏の成果です。

記事はAppCloudにおけるJRubyとTrinidadのセットアップ方法へと続き、Rubinius同様、JRubyがベータプログラムとして現在利用可能であることを説明している。

ベータプログラムとして、私たちはすべてのJRubyユーザに対して、ey-beta-talkメーリングリストによるフィードバックとサポートを提供するよう努めています。私たちはJRubyインテグレーションをできるだけ早く安定化させて、General Availabilityへと移行させたい(そして、Engine Yard Supportプログラムで完全にサポートしたい)と思っています。

MRIからJRubyに移行するのは簡単だ。しかし、JRubyでは利用を避けるべき機能がいくつかある。完全にサポートできていないため、もしくは、ほかに優れた代替手段があるためだ。JRubyチームのNick Sieger氏は、jruby-lintに取り組み始めている。これはソースコードを解析して変更すべきコードを指摘する静的解析ツールだ。例えば、次のようなパターンを検出してくれる(Readme.mdより)。

  • 高くつき、デフォルトでは無効化されているObjectSpace.each_objectとObjectSpace._id2refの利用を報告します。
  • Plain Mutexで推奨されないThread.criticalの利用を報告します。
  • (機能しない)Kernel#forkと(現在のプロセスを置き換えない)Kernel#execの利用を報告します。
  • C拡張を使っている既知のgemやライブラリを報告し、既知の代替手段の提供を試みます。

Jruby-lintはJRuby Wikiにある拡張に対するJRuby代替手段リストから入手できる。

新しい"JRuby Delegates"のリストはJRubyコミュニティの成長を助けるはずだ。具体的には、これは地元のJRubyエキスパートにアクセスしやすくする。

このWikiページに挙げられているユーザは、JRubyコアチームメンバーが旅行で不在なとき、地元の"JRuby Delegates"として活動することを引き受けてくれました。彼らはJRubyに関する質問に回答できるし、ランチ/ディナー/ハッキングで会うことができるし、近くのカンファレンスで話を聞くことができます。普段はいろいろな意味で、地元のJRuby"エキスパート"として活動します。質問があれば気兼ねせずに、直接彼らにコンタクトしてみましょう。あなたを助けてくれる、もしくは、助けられる人に連絡をとってくれるでしょう。

最後に、JRuby 1.6.2がリリースされた。これにはいくつかの重要なバグフィックスが含まれている。

この記事に星をつける

おすすめ度
スタイル

BT