JRubyとRuby、Railsアプリケーションの開発の違いは何ですか?
私はRuby on Rails IDEとしてNetBeansを使用し、プロジェクトを作成するたびにその質問を尋ねられます-違いはわかりません賛否両論ありますか
RubyはネイティブのCベースのインタープリター内で実行されます。 JRubyは、Java仮想マシン内で実行されます。Javaで実行するように書き直さない限り、JRuby内で機能しない可能性のあるgemやプラグインがたくさんあります。特に、ネイティブC拡張を使用しているものです。
最終的には、実際にアプリケーションをデプロイしたいときに違いがあります(使用したいgemに問題がなかった場合)。 Java Webサーバーにデプロイする場合は、JRubyが適しています。* nix環境の場合、Passenger + NginxまたはApacheも非常に人気があります。標準のRubyまたはRubyエンタープライズインタープリターを使用します。常に標準のインタープリターを使用して、mongrelまたはthinクラスターオプションも常に存在します。
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よりもはるかに優れており、管理が簡単です。
Rubyはプログラミング言語です。 JRubyはRubyプログラミング言語の実装です。
2つの違いについて質問しても意味がありません。それらは2つのまったく異なる抽象化レベルにあります。
それは車とプリウスの違いは何かを尋ねるのに似ています。それも意味がありません。プリウスは自動車の一般的な概念の実装です。プリウスとハマーの違い、または車と飛行機の違いは何だと思うかもしれませんが、車とプリウスの違いは意味がありません。
同様に、Rubyでは、RubyとPythonまたはJRubyとMRIの違いについて尋ねることができますが、RubyとJRubyの違いは意味がありません。
JRubyは主にRuby互換です。JRubyの1つの側面は、非互換モードで実行できることです- パフォーマンス上の理由 。
JRuby は、RubyのJava実装です。 Ruby 1.8と互換性があり、現在のRubyより遅れます(1.9)。これはJVM上で実行され、既存のJavaライブラリを簡単に統合できます。
JRubyは、Java Rubyインタプリタの実装です。Rails(aka Ruby on Rails)はRubyで記述されたWebアプリケーションフレームワークです。この記事では、Rubyコードが実際にJVMを介して実行される方法について説明します http://patshaughnessy.net/2012/2/7/journey -to-the-center-of-jruby
私が知る限り、jrubyは単にRubyで書かれた実装Javaなので、Javaランタイムと簡単に統合できます。
JRubyはJava Rubyプログラミング言語の実装です。