Python JVMでのプログラミングに非常に興味があり、JavaおよびRuby(not JRuby)たくさん、そしてある程度Groovyで。
現在、Java-JythonとJava-JRubyの統合にはどのような制限がありますか? Groovyについてはどうですか。JavaクラスがGroovyクラスではできないことを実行できることはありますか?また、IDE統合についてはほとんど(Eclipseですが、IntelliJとネットビーンズも面白い)?
Python、RubyまたはGroovyの方が優れている/より簡潔/何であれ)には興味がありません。彼らがどれだけうまく機能しているかに興味があります現在、JVMとツール(特にIDE)ですが、私が関心を持っているのは、Webサーバーの内部ではありません。
カスタムJavaクラスを拡張し、カスタムJavaインターフェースを実装することで、HelloWorldを取得する簡単な例は、私にとって非常に役立ちます。
JRubyやGroovyの経験はありません。しかしJython:
NetBeansとの優れた統合。 NetBeansはPythonプログラムをJythonですぐに実行できます。「Jythonディストリビューション」プラグインをインストールするだけで完了です。Eclipseも同様に機能します。章を参照してください sing Jython in IDEJython Book にあります。
Java-Jython統合は優れています。 Javaの呼び出しは非常に簡単です。JavaからのJythonの呼び出しはそれほど簡単ではありません(JavaはJythonを考慮して設計されていません))、それでもかなり簡単ですJythonでクラスを作成する(Java class/interface)を拡張し、次にJavaを使用してそのクラスのインスタンスを作成する)オブジェクトファクトリ。操作方法については JythonおよびJava Integration を参照してください。
JythonでのJavaクラスの拡張は次のように機能します。
_from javax.swing import JFrame, JButton
class MyFrame(JFrame):
def __init__(self):
self.defaultCloseOperation = JFrame.EXIT_ON_CLOSE
self.size = (300, 300)
self.add(JButton('Click Me!', actionPerformed=self.print_something))
self.visible = True
def print_something(self, event):
print 'Clicked!'
_
インターフェースの実装も同様に機能します。インターフェースをインポートし、class MyClass(MyInterface)
などのクラス定義を使用してインターフェースを「拡張」し、必要なものを実装するだけです。
Jythonに対する私の唯一の批判は、Jythonの生のパフォーマンスがあまり良くないということです(そしてそれは主に、Javaと対話するために大規模なリフレクションを使用しているためです)。ただし、本来のパフォーマンスは、通常、スクリプト言語とは無関係です。
昨年、私はGroovy(およびJavaも同様ですが、より多くのGroovy)で多くの作業を行ってきました。
IDE統合:Netbeansでは問題ありません。 Groovyは動的であるため、IDE(Intelisense、リファクタリングなど)のような同じレベルのJavaサポートを期待しないでください。 InteliJの方が優れていると言う人もいますが、それをチェックした同僚は気に入らなかった。 YMMV。前回確認したところ、EclipseでのサポートはNetbeansほど良くありませんでした。
Groovyは、Javaと非常に簡単に統合または混合できます。構文は比較的似ているので、精神的な切り替えはあまり害を及ぼしません。
特に、Grailsフレームワークと一緒に使用する場合、Groovyは(IMO)を操作するのが楽しいです。また、JavaScriptとの類似性も気に入っています。したがって、バックエンドのGroovyとクライアントのJavaScriptを組み合わせたプロジェクトでは、2つの完全に異なる言語を理解する必要はありません。多くの場合、同じ言語の2つの方言に似ています。
Groovyに関しては、有効なJavaは(ほぼ)常に有効なGroovyであるため、GroovyクラスはJavaクラスができるすべてのことを確実に実行できます。
Groovy/Grailsの開発に関しては、EclipseとNetBeansがまだ準備ができていないことがわかりました。しかし、お金があれば、IntelliJは本当に良いです。