いつプロジェクトに別の言語を組み込むことを検討しますか?一部のドメインは本質的に多言語(データベースの相互作用、インタラクティブなWebクライアント側の開発)ですが、他のドメインは1つの言語で実行でき、別の言語を導入するという考えは理解を助けるだけでなく理解を妨げる可能性があります。
現在私はC++に高性能のコードを持っていますが、これもかなりの量のルーチンファイルとi\o操作を実行する必要があり、Pythonのようなより高次の言語で正しく記述するのがより簡単で高速です。正直なところ、Boostを含むサードパーティのライブラリに関しては、C++についてはあまりよく知りません。
さまざまなプログラミング言語にはそれぞれ長所と短所があり、それぞれを利用したいということに何の問題もありません。しかし、あなたには強い境界があることを警告します。たとえば、 blender にはpythonがユーザーインターフェース層とスクリプト層にありますが、CとC++はさらに下にあります。1つまたは2つのpythonあちこちで投げられるクラスはおそらくないでしょう。
最初に頭に浮かぶのは、Webプログラミングです。それ以外は、可能な限り言語の数を最小限に抑えることをお勧めします。 C++、Python、PHP、およびVisual Basicを知っているかもしれませんが、あなたからプロジェクトを継承する人々はそうではないかもしれません。 (ほとんどの場合)不要な複雑さを追加することによる大きなメリットがない限り、私はそれを避けます。
いつでもこれらの言語プログラマーの専門知識と現在利用可能なスキルが与えられている場合が最適です。
また、iOS/iPhoneOS(+ webview)、Android(+ NDK)、webOS(+ PDK)など、最大のパフォーマンスとその他のものを必要とする開発の組み合わせのために、コンパイルされた言語と解釈言語を結びつける多くのプラットフォームがあります。
埋め込まれたスクリプト言語の散らばりから利益を得ることができる多くのプロジェクトがあります。 LuaやTklのような特に小さくて簡単に埋め込み可能な言語は、非常に簡単に統合できます。
ただし、ほとんどのインタプリタ言語は、ネイティブにコンパイルされた言語の速度に達することはありません。パフォーマンスが重視される場合は、これを考慮する必要があります。とはいえ、パフォーマンスが重要な部分で使用されていなければ、一部の低パフォーマンスの組み込みデバイスでもLuaコードを問題なく実行できます。
ほとんどのスクリプト言語は、C/C++のようなコンパイルされた低レベル言語よりも、プログラマーの生産性(または非プログラマー相互運用性!)に関して大きな利点を提供します。
個人的には、.Netプログラムで重い計算を行わなければならない場合は、F#とC#を使用してプログラムを作成することを知っています。 F#で非同期ワークフローで計算を実行しようとしますが、残りのコードはC#で行います。これは、F#でそのようなことを行うのがはるかに簡単であり、2つの言語が。 。
1つのプロジェクトで常に複数の言語を使用しています。問題のドメインが何であっても、常に単一の言語よりもはるかに効率的です。言語指向プログラミングと呼ばれています。異なる言語間の相互作用を単純化する共通のプラットフォームがあればそれは本当に役立ちますが、C++やPythonのようなものはそのようなプラットフォームなしでうまく機能します。