主要な Ruby VM の長所と短所 (機能、互換性、パフォーマンス、癖など) は何ですか?JRuby を介して Java インターフェースを使用できるなど、いくつかのボーナス機能があることも知っています。それらも注意するのに役立ちます。この時点で明確な利点を持つ VM はありますか? また、どのような状況でしょうか?
2 に答える
私は Matz の Ruby と JRuby の両方を使用しましたが、それらはさまざまなタスクを解決します。単純な Ruby または Rails アプリを開発している場合は、おそらくそれで十分ですが、非常に役立つ強力な Java ライブラリがいくつかある場合は、JRuby を使用する価値があります。
あまり複雑なことはしていませんが、JRuby は、少なくともコア言語機能の実装に関しては、かなりよく一致しているように見えました (違いはまだありませんが、存在する可能性があります)。
共有したい小さな逸話を 1 つ... 私は DB2 データベースと対話するスクリプトを作成していました。Ruby での DB2 サポートはひどいものです... Ruby ドライバーをコンパイルできるようにするためだけに、DB2 Express バージョン全体をインストールする必要がありますが、これは私にはうまくいきませんでした。私はうんざりして、JDBC といくつかの小さな DB2 JDBC jar を使用して、JRuby に切り替えました。それは私の問題を完全に解決しました。ポイント?そうですね、いくつかの Java ライブラリにアクセスすることで目前の問題が簡単になるのであれば、ぜひ試してみてください。
これがお役に立てば幸いです。申し訳ありませんが、他の VM の経験はありません....
私が読んだもう1つの警告ですが、詳細はよくわかりません... JRubyは、Matzの実装でサポートされている「グリーン」スレッドではなく、Javaスレッドを介したスレッドをサポートしていると思います...マルチスレッドが必要な場合マルチコア システムでは、C でスレッド化を行いたくない場合を除いて、JRuby の方がおそらくより適切に機能します。
Ruby MRI、Ruby 1.9 (YARV)、JRuby、XRuby、Rubinius、およびIronRubyという主要な VM について調べた情報を以下に示します。
昨年、主要な VM を比較したパフォーマンス ベンチマークがありましたが、 VM 開発の速さを考えると、今日はおそらくそれほど重要ではありません。Ruby 1.9 は概して最速で、今のところ JRuby よりも優れていると思います。
現在、Ruby on Rails を実行できる VM は、Ruby MRI、Ruby 1.9、JRuby、および Rubinius の 4 つです。
XRuby は JRuby と同様に JVM 上で実行され、Ruby ソース ファイルを Java .class にコンパイルします。
IronRuby は .NET 上で実行され、DLR を利用して、Ruby を .NET ライブラリおよびインフラストラクチャと統合できます。Ruby on Rails はまだ実行できません。
また、 Ruby のソース コードをブラウザーまたは Flash で実行できるようにする、HotRubyと呼ばれる VM もあります。