JRuby は、最も完全な Ruby 実装の 1 つです (IronRuby、Maglev、Rubinius、XRuby、YARV、MacRuby など、他にもたくさんあります)。これは非常に包括的であるため、ネイティブ C コードを使用する gem を使用しない限り、互換性に関しては問題ない可能性が非常に高くなります。
JRuby は実際の C 実装よりも少し高速ですが、実際のスレッドをサポートしていますが、公式の実装はそれを取得するのに少し苦労しています (まだGreen Threadsを使用しています)。JRuby から Java スレッドを使用するのは非常に簡単ですが、コードを Java と結合する必要があります (わずかなDIを使用すると、この結合は 1 回しか行われません)。
もう 1 つの利点は、ランタイム ツールです。言語ではなくプラットフォームとしての Java には、問題の診断やアプリケーションの状態のチェックに役立つ多くのランタイム ツール (プロファイラー、JConsole など) があります。
Twitterのエンジニアはまた、Ruby VMは長寿命のプロセスの環境であることに少し問題があると述べましたが、JVM は過去 10 年間にわたってそのために最適化されてきたため、その点で非常に優れています。
最近、Ruby にもセキュリティ上の問題が少しありましたが、JRuby の実装には影響しませんでした。
一方、プロジェクトにはより多くの成果物 (JVM、JRuby jar など) が必要です。長期間存続するアプリケーションを使用していて、より優れたランタイム サポートが必要な場合は、JRuby が優れた方法となります。それ以外の場合は、実際に移動するためにこれらのものが必要になるまで安全に待つことができます (スムーズに進む可能性があります)。