これらのタイプの質問の難しさは、答えがコミュニティに大きく依存していることです。
あなたの質問のいくつかを無秩序な順序で答えるには:
MATLABは、学界と産業界の両方で多く使用されています。それが産業界でかなり使われている理由の一つは、それが学界で教えられているからです。私は、MATLABがリンカーン研究所とデュポンの研究開発部門で使用されていることを知っています。
sympyやSAGEなどのシンボリック計算が得意なPythonで書かれたソフトウェアパッケージがあります。特定の興味、機能要件、および個人的な好みに応じて、Mathematica(またはMaple、またはその他のコンピュータ代数システム)はこれらのパッケージよりも優れている場合があります。
MATLABには、一部のシンボリック計算に使用できるSymbolic Math Toolboxがありますが、私の経験では、そのシンボリック操作機能はMathematicaおよびPythonよりも弱いです。一部のシンボリック操作は理論的にはC ++で実行できますが、扱いにくいです。また、MATLABは優れた汎用言語ではありません。線形代数と数値数学はうまく機能しますが、優れた入出力機能はありません。C ++やPythonと比較して、(並列MATLAB、MATLAB Star-P、Parallel Computing Toolboxなどのバリアントがあっても)優れた並列機能はありません。そのグラフィック機能でさえ、いくらかの作業を使用できます。ライセンスを持つ機関と提携しているのでない限り、MATLABも高価です。各ツールボックスの購入には費用がかかり、通常は数百ドルから数千ドルの費用がかかります。
Mathematicaは記号計算に加えて数値計算も行います。私が人々が数値計算にPythonやMATLABを使用するのを見たほど、数値計算にそれを使用するのを見たことはありません。それも並列機能を備えていますが、大規模なスーパーコンピューターには拡張できません。
Pythonは、学習が容易で使いやすいと見なされている優れた汎用言語です。大規模なスーパーコンピューター(たとえば、PyClaw、petsc4py、mpi4pyなどを参照)で使用され、適切にスケーリングされます。また、高い評価を受けている数値パッケージ(NumPyやSciPyなど)もあります。大規模で活発なコミュニティ。優れた入出力処理機能。優れたグラフィックライブラリ、およびライブラリの大規模なリポジトリ(PyPIをチェックしてください)。上記のプロプライエタリパッケージと比較すると無料です。MATLABまたはMathematicaのほとんどの機能は、無料で入手できるPythonパッケージに含まれています。Pythonの主な欠点は、C ++などのコンパイル済み言語よりも遅くなる傾向があることですが、この欠点は、Cython、Numba、およびPyPyの継続的な開発によって減少しています。より遅いPythonコードをC(またはC ++、またはFortran)コードと適切に記述されたPythonラッパーで置き換えることによっても緩和できます。解釈されているため、多くの人々はPythonの方がコンパイル言語よりも生産性が高いと報告しています。それは非常に人気があり、時間があれば多分学ぶ価値があります。
C ++は複雑な言語であり、計算科学でのその使用は物議を醸しています。その大規模な機能セットにより、保守が困難でコンパイルに永遠にかかるソフトウェアを簡単に作成できます。ただし、テンプレートやオペレーターのオーバーロードなどの機能は、deal.II、Blaze、Elementalなどのプロジェクトで使用されているため、慎重に使用することで非常に効果的です。C ++の高度な機能については、学習曲線が急になっています。また、完全な言語を習得したと感じるまでに何年もかかるという事例報告も耳にしました。それにもかかわらず、使いやすさの懸念と複雑な機能セットにもかかわらず、それは人気のある言語でもあります。自分をより雇用しやすくするために、それはおそらく学ぶ価値があります。計算科学の主な競争相手はFortranとCであり、これらも学ぶ価値があります。
あなたが学ぶことを決定するものは何でも、あなたが実際に必要とするものに基づいています。もちろん、PythonとC ++の両方を学ぶのは良いことですが、時間とリソースの制約を考えると、おそらく実際に使用する必要があるものだけを学習することになるでしょう。それは、作業するコミュニティによって異なります。