非常に多くのサーバー側およびモバイル Java アプリケーションは、Java にネイティブ Java 言語を使用しています。代わりに Jython を使用してエンタープライズ アプリケーション (Web サイト、アプリケーション サーバーなど) を構築できますか?
また、Jython での Java ME アプリケーションについてどう思いますか。
PS 質問へのコメントも歓迎します。
非常に多くのサーバー側およびモバイル Java アプリケーションは、Java にネイティブ Java 言語を使用しています。代わりに Jython を使用してエンタープライズ アプリケーション (Web サイト、アプリケーション サーバーなど) を構築できますか?
また、Jython での Java ME アプリケーションについてどう思いますか。
PS 質問へのコメントも歓迎します。
それは主にあなたの要件が何であるかに依存します. すべての言語には長所と短所があります。完璧な言語はありません。言語の選択について賢明な判断を下すことは、プログラマーにとって重要なスキルです。
インターフェイスを実装できないため、Jython で Java を置き換えることはできないという Charles の意見には同意しません。動的言語では、インターフェイスを必要としない機能と見なされます(ダック タイピングを参照)。
Jython は、Python の優れた言語機能を利用して、Java ライブラリの膨大なコレクションに簡単にアクセスできるようにします。ただし、オーバーヘッドの面で代償があり、かなり新しい言語であるため、バックアップするプログラマーとサポートが少なくなります。
Jython の優れた点は、パフォーマンスが問題になる場合に Java で個々のモジュールを書き直すことができることです。速度の問題は、問題にハードウェアを投げることができるサーバーではあまり目立ちません. 携帯電話では、依然としてパフォーマンスが重要であり、近い将来に Jython が大きな影響を与えるとは思えません。
では、Jython は Java に置き換わるのでしょうか? いいえ、そうなるとは思いません。Java の勢いはすさまじいものです。しかし、Jython や JVM を対象とするその他の言語で記述された部分を備えたソフトウェアがますます増えていくでしょう。
いいえ、Jython は Java の適切な代替品ではありません。たとえば、Java でインターフェースを作成し、Jython でそれを利用するクラスを作成しないと、インターフェースを実装する方法が提供されないことを考えてみてください。
必要なのは、Boo に相当する JVM を対象としたものです。Boo は .NET CLR を対象とする言語で、大まかに Python に触発されていますが、互換性がなく、CLR の機能を完全に公開しています (したがって、機能は C# と同等です)。現在のところ、Java と同等の機能を備えた Python 言語はありません。そのような言語は、必然的に Python と互換性がありません。Python は、関連する概念 (インターフェイスの型付け情報など) を表現する方法を提供していないからです。
これについていくつかの質問があったので、まだ明確にします:
Jython は、任意の Java プロジェクトを採用して、代わりにそのプロジェクトのランダムなサブセットを Jython に実装することを決定できず、開発チームの他の誰かに知られたり気にかけられたりしないという意味で、Java の代替品ではありません。確かに、Jython は Java と同じクラスのプロジェクトの多くに適していますが、逆ではなく Java から呼び出されるインターフェースを構築する場合を除きます。「エンタープライズ アプリケーション」には、互いに密接に動作する多くのコンポーネントが含まれる傾向があるため、任意の外部インターフェイスを備えたクラスを構築できることは重要です...そして純粋な Jython では容易に実行できないことです。
いいえ、Python は動的に型付けされるため、Jython は Java を置き換えることはできません。はい、Jython はサーバー アプリケーションに使用できます。
Java ME のリソースは非常に限られているため、Jython は Java ME には適していません。数年後かもしれません。
編集:弱くなく、動的に型付け
はい。動的言語は未来です。これは約1年前にSUNの代表者から聞いた. Jython の驚くべき点は、Java ライブラリを「ネイティブ」に使用できることです。サービスやその他のコンポーネントは Java のままかもしれませんが、統合レイヤーは確実に動的言語の方向に移行します。Python は Java のようにネイティブにオブジェクト指向であると思います。Perl などの他のスクリプト言語にそのようなことは期待していませんが、Ruby や Groovy も優れた代替手段であることは確かです。
そのドメインには Jython を使用できます。明らかに、Web 開発の世界は Python や Ruby などの動的型付け言語に移行しています。Jython は、企業で完全な "Java スタック" (アプリケーション サーバー、Tomcat、展開およびテスト インフラストラクチャなど) を使用できるため、この分野では便利です。ビジネス ロジックを Java で実装することもできます。
ただし、Jython は C# であるため、Java の代わりにはなりません。プログラマーの生産性は向上しますが、パフォーマンスとコンパイル時間のチェックは失われます。言語は本当に異なり、さまざまなタスクに対して「最適化」されています。たとえば、Jython でいくつかのテスト ケースの実装を開始するなど、より小規模で重要でないタスクについて Jython を評価することを提案します。
Jython が Java ME 開発に役立つとは思えません。理由は他の投稿に記載されています: リソースの制約。