私はPythonを知っていますが、Jythonは何ですか?Jythonとは何か、それはまったく役に立ちますか?
- いつJythonが必要ですか?
- どのような欠点がありますか?
- 私はそれが遅いと思いますか?
詳しくは、ありがとう。 Wikipediaを引用
私はPythonを知っていますが、Jythonは何ですか?Jythonとは何か、それはまったく役に立ちますか?
詳しくは、ありがとう。 Wikipediaを引用
:
Jythonを、JPythonの後継は、Javaで書かれたPythonプログラミング言語の実装です。それを使用しています何のためとして
持つことがあります。
Jythonのプログラムがシームレスに任意のJavaクラスをインポートして使用することができます。いくつかの標準モジュールを除いて、JythonプログラムはPythonモジュールの代わりにJavaクラスを使用します。
Jython、IronPython、CPythonのパフォーマンス測定では、大きなデータセットを持つケースでJythonとIronPythonの両方がCPythonより優れていることがわかりました。
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/
フォローアップの記事も面白いです:http://www.smallshire.org.uk/sufficientlysmsm/2009/05/22/ironpython-hammers-cpython-when-not-mutating-class-attributes/ –
今私たちはJython特定のベンチマークでCPythonよりも漸近的に高速です。 – u0b34a0f6ae
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の夢)もいくつかあります。
いつJythonが必要ですか?
Pythonでプログラミングしたいが、その結果をJava仮想マシン上で実行する必要がある場合(または必要な場合)、または既存のJavaコンポーネントを使用する場合。
どのような欠点がありますか。
JythonはPythonと100%互換性がないかもしれませんが、非互換性はバグとみなされます。後でCPythonで実行する必要がある/必要がある場合は、Javaコンポーネントを使用するコードをすべて書き直す必要があります。
私はそれが遅いと思いますか?
これは、いつものように、あなたの特定の用途に依存します。実際にはCPythonより速い場合もあります。もちろん、それはあなたが実行している特定のJVMに依存しています。これらは常に優れています。
いつJythonが必要ですか?
たとえば、コードにすばらしいスクリプト言語を追加する。
どのような欠点がありますか?
主な欠点は、Jythonが公式のCPythonディストリビューションに遅れていることです。現在、Python 2.5.2と互換性のあるバージョンのJythonを入手することができますが、CPythonは3.1です。
また、いくつかの難解なモジュールはサポートされていません。通常、Javaの置き換えを気付かず簡単に見つけることはできません。
私はそれが遅いと思いますか?
何に比べて?通常、それは十分に速いか、そうでないときにはPythonの数行を、はるかに高速なJavaの約1,000行に置き換えることができます。
他の二つの理由:
いつJythonが必要ですか?
Jythonを使用してWebsphereアプリケーションサーバーの管理スクリプトを記述することができます。このスクリプトは、一般的な管理タスクを自動化し、Websphereアプリケーション・サーバーでセキュリティーを構成するために使用されます。
WebSphereはJMX APIを使用して、内部WebSphereオブジェクトのAPIとして公開されるMBeanを作成します。 JythonスクリプトはJavaに基づいており、JVMで実行されるため、これらのオブジェクトにアクセスしてWebSphereの設定に利用することができます。
さらに、Jythonでコードを書くのも楽しいですし、新しい言語を学ぶことができます。私はJythonのが必要になります
?
JDBCドライバをテストするにはJythonが必要です。私が仕事を使うアプリケーションの中には、ODBCを使うものやJDBCを使うものがあります。 Jythonを使う私はどちらのタイプのドライバもPythonソース からテストできます(ODBCをテストするにはJDBC-ODBCブリッジを使用します)。
Pythonを知っていて、 "pythonic"なやり方で購入した場合、Jythonはその哲学をJVMスタックに持ち込むことができます。これを行うと、スクリプト機能を追加するだけではありません。
最新のプロジェクトでは、すべてのカスタムロジックとビジネスロジックがJythonで構築されています。同時に、Solr、Jasperreports、Quartz、Jetty、VelocityなどのJavaライブラリの活用も可能です。いくつか。
バイトコードにコンパイルされますが、余分なレイヤーが追加されていますが、まっすぐなJDBCの代わりにORMを使用しても同じです。
生産性が大幅に向上したものは、性能が低下した小数の重さになります。
サーバー側では、Jythonのボトルネックはほとんどありません。ミニデスクトップアプリケーションの場合、問題があるかもしれませんが、あなたがやろうとしていることに非常に依存しています。
最新のJDKは、JettyやTomcatのようなコンテナとともに、非常に成熟して安定しています。多くの場合、Pythonを上に追加すると、両方の世界の利点が得られます。
良い答え。私は既存のJavaアプリケーションを持っていて、Javaで面倒なファイル解析をしたいと思っています。 Jythonを使用すると、python構文(file.read()、list.split()など)で解析することができますか? –
Jythonは、Javaと同じ方法でバイトコードをコンパイルしません。バイトコードは、CPythonが行うすばらしい動的ランタイムのすべてを行います。そのため、Javaよりかなり遅いです。 – orip