高性能で詳細な制御が必要な場合は、CまたはC++で実行していることを記述してください。すべての言語がすべてのものに適しているわけではありません。
追加するために編集:単一の言語がすべてのものに適しているわけではありません。すべての優れたプログラミング言語ですべての便利な機能を合計すると、矛盾を回避できたとしても、C++よりもはるかにひどい混乱を招くことになります。
機能は無料ではありません。言語に機能がある場合、人々はそれを使用する可能性があります。新しいC#手動メモリ管理ルーチンを学習しないと、C#を十分に学習することはできません。コンパイラチームは、有用な他のコンパイラ機能を犠牲にして、それを実装しようとしています。言語はCやC++のように解析が難しくなる可能性があり、そのためコンパイルが遅くなります。(C ++の人として、C#プロジェクトの1つをコンパイルすると、いつも驚かされます。コンパイルはほとんど瞬時に思えます。)
機能は、時には予期しない方法で互いに競合します。Cポインターがエイリアス化されている可能性があるため、一部の最適化が妨げられるため、C90は行列計算でFortranほどうまく機能しません。言語でポインタ演算を許可する場合は、その結果を受け入れる必要があります。
手動のメモリ管理を可能にするC#拡張機能を提案していますが、いくつかのケースではそれが役立ちます。つまり、メモリは別々の方法で割り当てる必要があり、手動で管理されたメモリと自動で管理されたメモリを区別する方法が必要になります。突然、メモリ管理が複雑になり、プログラマーが失敗する可能性が高くなり、メモリマネージャー自体がより複雑になります。すべてのケースでより複雑になり、メモリ管理が遅くなる代わりに、いくつかのケースで重要なパフォーマンスが少し得られます。
いつか、スクリプトから数値計算まで、ほとんどすべての目的に適したプログラミング言語が登場するかもしれませんが、その近くに人気のあるものはありません。それまでの間、1つの言語のみを使用するという制限、または複数の言語を学習してそれらを切り替えるという課題を喜んで受け入れる必要があります。