JavaRush /Java Blog /Random-JA /コーヒーブレイク #21。Python と Java の統合。Jakarta EE と Eclipse Micro...

コーヒーブレイク #21。Python と Java の統合。Jakarta EE と Eclipse MicroProfile について知る

Random-JA グループに公開済み

PythonとJavaの統合? なぜだめですか!

出典: Jaxenter コーヒーブレイク #21。 Python と Java の統合。 Jakarta EE と Eclipse MicroProfile について知る - 1実際、システム プログラミングとスクリプト言語を組み合わせるのは、奇妙な新しい概念ではなく、めったに使用されないだけです。共通のバイナリ アプリケーション インターフェイスを持つプログラミング言語の場合、それらを単一のライブラリまたは実行可能ファイルに結合することが完全に可能です。これにより作業は少し難しくなりますが、役立つツールがあります。Python と Java は実際には相互補完します。たとえば、一方を一般的なサブタスクに使用し、もう一方をスクリプト言語として使用してアプリケーションの設定を拡張することができます。他の言語の統合に関して言えば、たとえば JavaScript は、少なくとも Perl、Tcl、Visual Basic、Python などの他のスクリプト言語と比較すると、通常、Web ブラウザーの外では使用されません。ただし、これらの言語はすべて、通常、他の言語と組み合わせられます。Python は伝統的に C および C++ と組み合わせられてきましたが、Windows プラットフォームでは Visual Basic が C++ のスクリプト言語として選択されることがよくあります。また、Perl は、Tcl と同様に、C/Unix で一般的に使用されます。Python は、Microsoft Scripting Host アーキテクチャおよび COM と簡単に統合できるため、Windows ではやや頻繁に使用されます。さらに、macOS ツールにも最適です。

なぜ Java と Python なのか?

Python はオブジェクト指向のスクリプト言語であるため、Java によく適合します。Jython など、完全に Java で記述された Python インタープリターと組み合わせると、アプレット全体を Python で記述でき、JDK 互換のブラウザーで実行でき、C/CPython とほぼ同じ速度でコードを実行できます。Jython インタープリターは、Python ソース コードを Java バイトコードに直接変換し、驚異的な速度を実現します。しかし、他の Java スクリプト ソリューション (Java/TCL、Java/Perl など) は、これらの言語の C 実装に JVM を接続するため、移植性の問題が生じるだけでなく、これらのソリューション自体も私たちが望むほど簡単ではありません。

Java と JPython を一緒に使用する最良の方法は何ですか?

Java で Python を実装したり、その逆を実行したりする実績のあるツールが多数あるため、ある言語のコマンドを別の言語で実行できます。以下は、Python と Java を統合するための最良のツールのいくつかの短いリストです。
  • Jythonは Java で実装された Python です。
  • JPype - Python を使用して Java コマンドを実行できます。
  • Jepp - Python に組み込まれた Java。
  • JCC は、C++/Python から Java を呼び出すための C++ コード ジェネレーターです。
  • Javabridge は、 CPython から JVM を実行し、対話するためのパッケージです。
  • Py4j - Python で Java コマンドを実行できるようにします。
  • Voc はBeeWareツールの要素です。Python コードを Java バイトコードに変換します。
  • p2j - Python コードを Java に変換します。もう開発は行われていません。
これらのツールを使用するには、いくつかの方法があります。それぞれに独自の長所と短所があります。たとえば、Jython でアプリケーション全体のプロトタイプを作成し、数回のテストと再設計の後、すべてを Java で書き直すことができます。これにより、プロジェクトの初期段階でスクリプト言語の開発における柔軟性と速度の向上を活用できるようになります。ただし、最終的な製品は、Java だけで書き始めた場合よりももう少し詳しくする必要があります。また、UI ライブラリが心配な場合でも、Jython は通常の Java と同じ UIL にフックできるため、Java の変換は簡単になるはずです。ただし、大規模なプロジェクトを構築しようとすると、物事はそれほど単純ではありません。トップレベルのコンポーネントなど、さまざまなコンポーネントやレイヤーが独立した開発サイクルを持っているという欠点に遭遇する可能性があります。もちろん、安定リリースに近づくにつれて個々のコンポーネントを Java で書き直すことも、最初から一部のコンポーネントを Java のみで記述することもできます。もう 1 つのオプションは、パフォーマンスが重要なコンポーネントのみを書き直すことです。この方法では、高レベルのコンポーネントを Jython に残すことができます。つまり、下位レベルのコンポーネントを書き直すだけで済み、場合によっては何も書き直す必要がなくなります。

Jakarta EE と Eclipse MicroProfile の紹介

出典: DZone Jakarta EE と Eclipse MicroProfile についてまだ聞いたことがありませんか? そこで、Java Enterprise 標準がどのように開発されたのかを理解しましょう。これらのテクノロジーは両方とも、クラウド ネイティブで最新のエンタープライズ アプリケーションの構築に最適であるため、将来的に役立つことは間違いありません。

ジャカルタ EE とは何ですか?

Jakarta EE は、Java でエンタープライズ アプリケーションを作成するための一連の仕様 (JAX-RS、CDI、JPA、JSON-P など) です。これらの仕様は、API とテクノロジーがどのように相互作用するかを定義する文書です。 コーヒーブレイク #21。 Python と Java の統合。 Jakarta EE と Eclipse MicroProfile について知る - 2仕様文書は正式な定義を持つインターフェイスのようなもので、これらのインターフェイスの実際の実装はアプリケーション サーバー ベンダー (WildFly、Open Liberty、Payara、TomEE など) に依存します。ベンダーが仕様を誤って実装することを防ぐために、各仕様には Technology Compatibility Kit (CTS) が提供されています。これは、特定の仕様の実装の準拠性を検証するための一連のテストです。アプリケーション サーバーがすべての仕様の CST を送信すると、規格全体に準拠します。長年にわたり、Java EE はエンタープライズ アプリケーションを作成する標準的な方法でした。Java EE (以前は J2EE と呼ばれていました) は、Oracle によって長い間サポートされてきました。2017 年、Oracle は自社の支援の下で企業標準を開発しないことを決定し、それを Eclipse Foundation に移管しました。法的な理由により、ブランド名を変更する必要があり、製品を Jakarta EE と呼ぶことにしました。Jakarta EE の仕様はすべて公式 Web サイトで見つけることができ、仕様プロセスが現在どのように機能しているかに関する詳細情報は Eclipse Foundation Web サイトで入手できます。

Eclipse マイクロプロファイルとは何ですか?

Java EE 向けの新機能のリリースと適応のプロセスは非常に遅かったため、ベンダーとコミュニティ メンバーのグループは 2016 年に MicroProfile を作成することを決定しました。このプロジェクトの主な目標は、開発者が時代に追いつくのを支援し、マイクロサービス アーキテクチャ向けに既存のプラットフォームを最適化することでした。現在、Eclipse MicroProfile には 12 の仕様が含まれています。そのうち 4 つは Jakarta EE の一部でもあります。これにより、MicroProfile のみを使用してスタンドアロン アプリケーションを作成できます。すべての仕様はベンダーに依存せず、実装はアプリケーション サーバーに付属しています。Jakarta EE 仕様は、エンタープライズ アプリケーションを構築するための強固な基盤と考えることができます。これに加えて、Eclipse MicroProfile は、このテクノロジーがTwelve-Factor アプリケーション手法に準拠しているため、分散システムの構築におけるギャップを埋めます。
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION