複数のプログラミング言語を使用して、Altera Quartus II などの大規模なソフトウェアを構築することは妥当 (および/または実践) ですか? つまり、ソフトウェアのメニューは C++ でコーディングされており、おそらくユーザーが最も頻繁に使用する主要な機能インターフェイスは Java を使用して構築されています。これは可能ですか?もしそうなら、大規模なソフトウェアでそうすることの欠点/利点は何ですか?
2 に答える
それは可能で実践されていますが、アプリケーションのコアはパフォーマンスのためにc++のような中間レベルのプログラミング言語でビルドすることをお勧めしますが、フロント エンド部分とコアへのユーティリティおよびインターフェイスは他の言語を使用してビルドできます。JavaScriptのように。
JavaScript UIを備えたC++コアの例である Mozilla ブラウザーを見てください。
あなたの質問はそれが可能かどうかに関するものです。答えは可能です。ただし、 c++とJavaを使用してアプリケーションを構築する際の課題は、アプリケーションの 2 つの部分間の通信であると言って、少し拡張しようとします。そのためには、 xmlのような何らかの中間体が必要になります。
複数の言語からアプリケーションを構築することが可能です。たとえば、フロント エンドを C++ でコーディングし、バック エンドを Java で記述し、通信にJNIを使用することができます。
このようなアプリケーションでは、各言語の機能を活用できますが、開発者は複数の分野の専門知識を持っているか、複数の開発者を持つ必要があり、それぞれが提供されるソリューションのコストを増加させる可能性があります。
また、最近では、ほとんどのコンパイラはコンパイル中にコードを最適化する傾向があるため、AutoCad や Photoshop のラインに沿って何かを記述している場合を除き、開発者はコードのあらゆる側面を調整できるマイクロ最適化を試みたり見つけたりしません。比較的大量のシステム リソース。
複数の言語を使用するソリューションのもう 1 つの問題は、それらを相互に通信させる方法 (ソケット、共有メモリ セグメント、パイプなど) であり、それによって複雑さがさらに増すことになります。