web-dev-qa-db-ja.com

RubyとJRubyの違いは何ですか?

JRubyとRuby、Railsアプリケーションの開発の違いは何ですか?

私はRuby on Rails IDEとしてNetBeansを使用し、プロジェクトを作成するたびにその質問を尋ねられます-違いはわかりません賛否両論ありますか

52
Ash

RubyはネイティブのCベースのインタープリター内で実行されます。 JRubyは、Java仮想マシン内で実行されます。Javaで実行するように書き直さない限り、JRuby内で機能しない可能性のあるgemやプラグインがたくさんあります。特に、ネイティブC拡張を使用しているものです。

最終的には、実際にアプリケーションをデプロイしたいときに違いがあります(使用したいgemに問題がなかった場合)。 Java Webサーバーにデプロイする場合は、JRubyが適しています。* nix環境の場合、Passenger + NginxまたはApacheも非常に人気があります。標準のRubyまたはRubyエンタープライズインタープリターを使用します。常に標準のインタープリターを使用して、mongrelまたはthinクラスターオプションも常に存在します。

58
danivovich

JRubyはJava VM(インタプリタはJavaで書かれた)で実行されますが、元のRubyインタプリタはC.どちらにも利点と欠点があります(Rubyはネイティブ拡張を使用でき、JRubyはJava型、オブジェクトなどにアクセスできます)

JRubyはRuby 1.8.6の構文を使用します。1.9.xは間もなく利用可能になります。JRubyはJavaスレッドを持っています(つまり、多くのCPU、コアなどにスケーリングされます)。 )、Rubyには、ユーザー空間のスレッド化、ロックのロックなど、いくつかの問題があります。

個人的に、私はRoR開発にGlassfish v3とNetbeansでJRubyを使用しています。これは、Ruby +ロードされたモングレル、Apacheよりもはるかに優れており、管理が簡単です。

24
Tamas Mezei

Rubyはプログラミング言語です。 JRubyはRubyプログラミング言語の実装です。

2つの違いについて質問しても意味がありません。それらは2つのまったく異なる抽象化レベルにあります。

それは車とプリウスの違いは何かを尋ねるのに似ています。それも意味がありません。プリウスは自動車の一般的な概念の実装です。プリウスとハマーの違い、または車と飛行機の違いは何だと思うかもしれませんが、車とプリウスの違いは意味がありません。

同様に、Rubyでは、RubyとPythonまたはJRubyとMRIの違いについて尋ねることができますが、RubyとJRubyの違いは意味がありません。

5
Jörg W Mittag

JRubyは主にRuby互換です。JRubyの1つの側面は、非互換モードで実行できることです- パフォーマンス上の理由

4
Thomas Jung

JRuby は、RubyのJava実装です。 Ruby 1.8と互換性があり、現在のRubyより遅れます(1.9)。これはJVM上で実行され、既存のJavaライブラリを簡単に統合できます。

4
Brian Agnew

JRubyは、Java Rubyインタプリタの実装です。Rails(aka Ruby on Rails)はRubyで記述されたWebアプリケーションフレームワークです。この記事では、Rubyコードが実際にJVMを介して実行される方法について説明します http://patshaughnessy.net/2012/2/7/journey -to-the-center-of-jruby

0
RushabhM

私が知る限り、jrubyは単にRubyで書かれた実装Javaなので、Javaランタイムと簡単に統合できます。

0
ennuikiller

JRubyはJava Rubyプログラミング言語の実装です。

0
user1866653