Perl、Python、および Java との統合に対するアプローチの違いを知りたいです。
Inline::Java モジュールを介して Perl と Java を組み合わせた経験があります。しかし、Python の Jython と Ruby の JRuby の経験はありません。
Inline::Java
Perlコードを使用して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 を使った人の経験を聞きたいと思っています。