2009-03-29 17 views
4

多くのサーバー側とモバイルJavaアプリケーションでは、JavaにネイティブJava言語が使用されています。 Jythonを使用してエンタープライズアプリケーションを構築することはできますか?ウェブサイト、アプリケーションサーバなどJythonはJavaを置き換えることができますか?

また、JythonのJava MEアプリケーションについてはどう感じますか?

P.S.質問に対するコメントも大歓迎です。

答えて

4

いいえ、Jythonのは、Javaに適して代わるものではありません。例えば、Javaでインタフェースを記述してからJythonでそれを活用するクラスを書くことなく、インタフェースを実装する方法はありません。

Booに相当するJVMターゲットが必要です。 Booは.NET CLRをターゲットとした言語で、Pythonに大まかには触発されていますが互換性はなく、CLRの機能を完全に公開しています(したがって、C#と機能的に同等です)。現在のところ、Javaとの機能パリティを持つPython言語はありません。Pythonは、関連する概念(インタフェース型情報など)の一部を表現する方法を提供していないため、このような言語は必然的にPythonと互換性がありません。


が、これについていくつか質問されて、まだ私は明確にしておりますので:Jythonのは、あなたが任意のJavaプロジェクトを取ることができないという意味でのJavaに代わるものではありません

、ランダムを実施することを決定代わりにJythonでそのプロジェクトのサブセットを使用し、開発チームの他の誰かに知らせたり気にさせたりしないでください。確かに、Jythonは、ではなく、Javaから呼び出されるインタフェースを構築する場合を除いて、Javaがある同じクラスのプロジェクトの多く()に適しています。 「エンタープライズアプリケーション」は、相互に密接に連携する多くのコンポーネントを持つ傾向があり、任意の外部インターフェイスを持つクラスを構築できることは重要です...そして、純粋なJythonでは容易に行えないものです。

+0

-1インターフェイスが必要であるとのサポートなしに仮定します。 JythonはJavaを置き換えることができるか、Javaを置き換えるべきではないが、これは任意の推論である。 –

+1

@Jesse - Jythonは、Javaオブジェクトシステムのすべての機能にアクセスできるという表現力がJythonにはないとは考えられない、外部から見えるインターフェースを作成するためにJava-the-languageを使用できるという事実。言語Aが言語Bが表現できるものの一部しか表現できない場合は、それをどのように置き換えることができますか? –

+1

@Charles、もし車が肥料を生産することができないし、馬食場の店を減らす手段もないので、車は馬車を置き換えることができないと言ったのですが、あなたの反応はどうでしょうか? –

3

いいえ、Pythonが動的に型指定されているため、JythonはJavaを置き換えることはできません。はい、Jythonはサーバーアプリケーションに使用できます。

Java MEにはリソースが非常に限られているため、JythonはJava MEには適していません。おそらく数年後。

編集:動的型付けではなく、弱い

+3

Pythonは厳密に型指定されています。違いは、変数が動的であることです。つまり、変数は実際にはオブジェクトの周りのラベルです。 http://shriphani.com/blog/2008/05/11/python-variables/ – gregturn

0

このドメインにはJythonを使用できます。 明らかに、Web開発の世界は、PythonやRubyのような動的型指定言語に向かっています。 Jythonは、エンタープライズで完全な "Javaスタック"(App Server、Tomcat、デプロイメント、テストインフラストラクチャなど)を使用できるため、このドメインでうまくいきます。 Javaでビジネスロジックを実装することもできます。

しかし、JythonはJavaの代わりではないため、C#です。プログラマの生産性は向上しますが、パフォーマンスが低下し、時間のチェックがコンパイルされます。言語は本当に異なっており、さまざまなタスクに合わせて最適化されています。私はJythonを小規模な、重要でないタスク(例:その中にいくつかのテストケースを実装することによって開始します。

私は、JythonがJava ME開発に役立つとは思っていません。その理由は、他の記事「リソースの制約」に記載されています。

+1

"言語は実際には異なり、さまざまなタスクに合わせて最適化されています。 あなたはどのタスクが優れていますか? – Xolve

1

はい。ダイナミックな言語は未来です。私はこれまで、SUNの代表者からこれを聞いた。 Jythonの素晴らしい点は、Javaライブラリの「ネイティブ」な使い方です。 サービスやその他のコンポーネントはJavaに残るかもしれませんが、統合レイヤーは動的言語の方向に確実に移動します。 私はPythonがネイティブにJavaのようにオブジェクト指向だと思います。 私は、Perlのような他のスクリプト言語からのようなものは期待していませんが、確かにRubyとGroovyも良い選択肢です。

4

これは主に要件によって異なります。すべての言語に長所と短所があります。完全な言語はなく、言語の選択について賢明な決定を下すことは、プログラマーにとって重要なスキルです。

私はJythonがJavaを置き換えることはできないと私はチャールズに同意します。あなたはインターフェースを実装できないからです。動的言語では、それはあなたがを必要としないフィーチャーと見なされます。インターフェース(ダックタイピングを参照)。

JythonはPythonの優れた言語機能を取り入れ、それを組み合わせて、膨大な数のJavaライブラリに簡単にアクセスできます。しかし、それはオーバーヘッドの点で価格があり、かなり新しい言語であるため、プログラマーやサポートを減らしてバックアップすることができます。

Jythonの素晴らしい点は、パフォーマンスが問題であれば、Javaの個々のモジュールを書き換えることができることです。問題のハードウェアを投げることができるサーバーでは、スピードの問題はそれほど顕著ではありません。携帯電話では、パフォーマンスはまだ重要です。近い将来、Jythonが大きな影響を与えることはありません。

JavaをJythonに置き換えますか?いいえ、私はそうは思わない - Javaの背後にある勢いは大きすぎる。しかし、JythonやJVMを対象とした他の言語で記述された部分のソフトウェアがますます増えていきます。

+0

私はインターフェイスが悪いハッキングであることに同意します。しかし、ネイティブJavaで書かれたコードで消費するためのAPIを構築する場合、そのハックが必要になる傾向があります。真の「エンタープライズアプリケーション」を話しているならば、結局のところ、最も低い入札者に部品を委託することができればと思っています...そして、入札者の中には、PythonよりJavaを知る可能性が非常に高いです。 –

+0

@Charles、それはJythonの美しさです。外注されたコンポーネントはJavaにすることができ、あなたはJythonから追加の手間をかけずに使用できます。私が言ったように、私はそれがJavaに取って代わるとは思わないが、それほど有用ではない。アウトソーシングされたコンポーネントがJythonコードをネイティブに呼び出そうとしていない場合にのみ –

+0

になります。呼び出し規約が双方向ではなく一方向の場合、問題はありません。 –

関連する問題