2009-12-07 9 views

答えて

24

Jythonを、JPythonの後継は、Javaで書かれたPythonプログラミング言語の実装です。それを使用しています何のためとして

持つことがあります。

Jythonのプログラムがシームレスに任意のJavaクラスをインポートして使用することができます。いくつかの標準モジュールを除いて、JythonプログラムはPythonモジュールの代わりにJavaクラスを使用します。

Jython、IronPython、CPythonのパフォーマンス測定では、大きなデータセットを持つケースでJythonとIronPythonの両方がCPythonより優れていることがわかりました。

+5

Jythonは、Javaと同じ方法でバイトコードをコンパイルしません。バイトコードは、CPythonが行うすばらしい動的ランタイムのすべてを行います。そのため、Javaよりかなり遅いです。 – orip

3

JythonはJVMの上で動作するPython実装です。 理論的には、Jythonは少し遅く、CPythonです。 http://www.smallshire.org.uk/sufficientlysmall/2009/05/22/ironpython-2-0-and-jython-2-5-performance-compared-to-python-2-5/

+1

フォローアップの記事も面白いです:http://www.smallshire.org.uk/sufficientlysmsm/2009/05/22/ironpython-hammers-cpython-when-not-mutating-class-attributes/ –

+0

今私たちはJython特定のベンチマークでCPythonよりも漸近的に高速です。 – u0b34a0f6ae

0

JVMはいくつかの素晴らしい動的な最適化を行いますが、それはおそらく、興奮する何もない:

あなたがここにいくつかのベンチマークを見つけることができます。 JRubyはJVM(http://www.engineyard.com/blog/2009/j-is-for-jvm-why-the-j-in-jruby/)上で実行されるコードパスを最適化することで高速化することもありますが、これはPythonではなくRubyです。

Javaライブラリが主な理由です。たくさんの企業が、Pythonでスクリプト化できるJavaコードの大部分を持っています。また、Jythonを使ってスクリプトを書くことができるオープンソースのフレームワーク(StrutsとEclipseの夢)もいくつかあります。

6

いつJythonが必要ですか?

Pythonでプログラミングしたいが、その結果をJava仮想マシン上で実行する必要がある場合(または必要な場合)、または既存のJavaコンポーネントを使用する場合。

どのような欠点がありますか。

JythonはPythonと100%互換性がないかもしれませんが、非互換性はバグとみなされます。後でCPythonで実行する必要がある/必要がある場合は、Javaコンポーネントを使用するコードをすべて書き直す必要があります。

私はそれが遅いと思いますか?

これは、いつものように、あなたの特定の用途に依存します。実際にはCPythonより速い場合もあります。もちろん、それはあなたが実行している特定のJVMに依存しています。これらは常に優れています。

3

いつJythonが必要ですか?

たとえば、コードにすばらしいスクリプト言語を追加する。

どのような欠点がありますか?

主な欠点は、Jythonが公式のCPythonディストリビューションに遅れていることです。現在、Python 2.5.2と互換性のあるバージョンのJythonを入手することができますが、CPythonは3.1です。

また、いくつかの難解なモジュールはサポートされていません。通常、Javaの置き換えを気付かず簡単に​​見つけることはできません。

私はそれが遅いと思いますか?

何に比べて?通常、それは十分に速いか、そうでないときにはPythonの数行を、はるかに高速なJavaの約1,000行に置き換えることができます。

3

他の二つの理由:

  • 大きなJavaアプリケーションにスクリプトを埋め込みます。
  • Javaスレッドを使用して、マルチスレッドプログラムをJythonで記述します。
1

いつJythonが必要ですか?

Jythonを使用してWebsphereアプリケーションサーバーの管理スクリプトを記述することができます。このスクリプトは、一般的な管理タスクを自動化し、Websphereアプリケーション・サーバーでセキュリティーを構成するために使用されます。

WebSphereはJMX APIを使用して、内部WebSphereオブジェクトのAPIとして公開されるMBeanを作成します。 JythonスクリプトはJavaに基づいており、JVMで実行されるため、これらのオブジェクトにアクセスしてWebSphereの設定に利用することができます。

さらに、Jythonでコードを書くのも楽しいですし、新しい言語を学ぶことができます。私はJythonのが必要になります

Here is the details

0

JDBCドライバをテストするにはJythonが必要です。私が仕事を使うアプリケーションの中には、ODBCを使うものやJDBCを使うものがあります。 Jythonを使う私はどちらのタイプのドライバもPythonソース からテストできます(ODBCをテストするにはJDBC-ODBCブリッジを使用します)。

7

Pythonを知っていて、 "pythonic"なやり方で購入した場合、Jythonはその哲学をJVMスタックに持ち込むことができます。これを行うと、スクリプト機能を追加するだけではありません。

最新のプロジェクトでは、すべてのカスタムロジックとビジネスロジックがJythonで構築されています。同時に、Solr、Jasperreports、Quartz、Jetty、VelocityなどのJavaライブラリの活用も可能です。いくつか。

バイトコードにコンパイルされますが、余分なレイヤーが追加されていますが、まっすぐなJDBCの代わりにORMを使用しても同じです。

生産性が大幅に向上したものは、性能が低下した小数の重さになります。

サーバー側では、Jythonのボトルネックはほとんどありません。ミニデスクトップアプリケーションの場合、問題があるかもしれませんが、あなたがやろうとしていることに非常に依存しています。

最新のJDKは、JettyやTomcatのようなコンテナとともに、非常に成熟して安定しています。多くの場合、Pythonを上に追加すると、両方の世界の利点が得られます。

+0

良い答え。私は既存のJavaアプリケーションを持っていて、Javaで面倒なファイル解析をしたいと思っています。 Jythonを使用すると、python構文(file.read()、list.split()など)で解析することができますか? –

関連する問題