3

Perl、Python、および Java との統合に対するアプローチの違いを知りたいです。

Inline::Java モジュールを介して Perl と Java を組み合わせた経験があります。しかし、Python の Jython と Ruby の JRuby の経験はありません。

Inline::JavaPerlコードを使用してJVMを起動し、インラインで指定されたJavaコードをJavaバイトコードにコンパイルするか、クラスパスのJarから要求されたJavaクラスをロードすることで、それが機能するかどうかを理解しています。プログラマは、Perl コード内でこれらの Java クラスを使用できます。その時点で、Inline::Javaネットワーク ソケットまたは JNI を使用して、Perl 空間と JVM の間でデータを転送します。このアプローチの利点は、Perl コードの実行が標準の Perl インタープリターでも機能するため、正常に動作することです。Inline::Javaさらに、同じプログラムで と C ベースの Perl モジュールの両方を使用することができます。大きな欠点は、Perl と JVM の通信オーバーヘッドがあり、Perl と JVM の両方のプロセスを実行することの複雑さです。

このアプローチが Jython や JRuby とどのように比較されるか教えてもらえますか?

Jython についての私の理解では、Jython は Python プログラムを Java バイト コードに変換し、JVM で実行します。この利点は、Java ライブラリの呼び出しが比較的シームレスであることです。欠点は、Numpy などの C ベースのモジュールを Jython で使用できないことです。さらに、Python コードが Jython の下で標準の Python インタープリターとは異なる動作をするという理論上の可能性があります。

私は JRuby がどのように機能するのかよくわからないので、JRuby を使った人の経験を聞きたいと思っています。

4

1 に答える 1

0

Jython についてのあなたの理解は正確です。Jython は Java で記述され、Java バイトコードにコンパイルされます。このため、Jython では Java をかなり簡単に使用できます。また、Jython と標準の Python の間に違いがある可能性があると考えるのも正しいです。多くの場合、相違点は機能と見なされます。Jython は、相違点のいくつかは優れていると考えており、CPython を修正する必要があるとさえ示唆しています。反対のものもあれば、キーワード以外のものとしてキーワードを使用できるようにするなど、Java を使いやすくするための違いもあります。

JRuby は、Java バイトコードにコンパイルされ、Java で記述されているため、Jython と非常によく似た動作をします。私はそれについてあまりよく知らず、標準のRubyとの顕著な違いがあるかどうか.

于 2013-07-09T19:01:16.343 に答える