Kesulitan dengan jenis pertanyaan ini adalah bahwa jawabannya sangat tergantung pada masyarakat.
Untuk menjawab beberapa pertanyaan Anda dengan urutan serampangan:
MATLAB banyak digunakan di dunia akademis dan industri. Salah satu alasan mengapa ini digunakan cukup banyak dalam industri adalah karena ia diajarkan di dunia akademis. Saya tahu fakta bahwa MATLAB digunakan di Laboratorium Lincoln dan di divisi penelitian dan pengembangan DuPont.
Ada paket perangkat lunak yang ditulis dalam Python yang bagus dalam perhitungan simbolik, seperti sympy dan SAGE. Tergantung pada minat khusus Anda, persyaratan fitur, dan preferensi pribadi, Mathematica (atau Maple, atau sistem aljabar komputer lainnya) mungkin lebih unggul daripada paket-paket ini.
MATLAB memiliki Toolbox Matematika Simbolik yang dapat digunakan untuk beberapa perhitungan simbolik, tetapi kemampuan manipulasi simbolisnya, menurut pengalaman saya, lebih lemah daripada Mathematica dan Python. Beberapa manipulasi simbolis secara teoritis dapat dilakukan dalam C ++, tetapi sangat sulit. MATLAB juga bukan bahasa tujuan umum yang baik. Ia melakukan aljabar linear dan matematika numerik dengan baik, tetapi tidak memiliki kemampuan input / output yang baik. Itu tidak memiliki kemampuan paralel yang baik (meskipun ada varian seperti MATLAB paralel, MATLAB Star-P, dan Toolbox Komputasi Paralel) dibandingkan dengan C ++ atau Python. Bahkan kemampuan grafisnya bisa menggunakan beberapa pekerjaan. MATLAB juga mahal kecuali Anda berafiliasi dengan lembaga yang memiliki lisensi. Setiap kotak peralatan mahal untuk dibeli, dan umumnya berharga ratusan hingga ribuan dolar.
Mathematica melakukan perhitungan numerik di samping perhitungan simbolik. Saya belum pernah melihat orang menggunakannya untuk perhitungan numerik sebanyak yang saya lihat orang menggunakan Python dan MATLAB untuk pekerjaan numerik. Ini juga memiliki kemampuan paralel, tetapi tidak akan skala ke superkomputer besar.
Python adalah bahasa tujuan umum yang baik yang dianggap mudah dipelajari dan dapat digunakan. Ini digunakan pada superkomputer besar (lihat, misalnya, PyClaw, petsc4py, mpi4py, dan lainnya), dan skala dengan baik. Ini juga sangat menghargai paket numerik (seperti NumPy dan SciPy); komunitas besar yang aktif; kemampuan pemrosesan input / output yang baik; dan pustaka grafis yang baik, bersama dengan gudang pustaka yang besar (lihat PyPI). Ini gratis, dibandingkan dengan paket eksklusif yang disebutkan di atas. Anda dapat menemukan sebagian besar fungsi MATLAB atau Mathematica dalam paket Python yang tersedia secara bebas. Kerugian utama dari Python adalah bahwa ia cenderung lebih lambat daripada bahasa yang dikompilasi seperti C ++, meskipun kerugian ini berkurang dengan terus berkembangnya Cython, Numba, dan PyPy; ini juga dapat dikurangi dengan mengganti kode Python yang lebih lambat dengan kode C (atau C ++, atau Fortran) dan pembungkus Python yang ditulis dengan tepat. Ditafsirkan, banyak orang melaporkan produktivitas yang lebih tinggi dengan Python daripada bahasa yang dikompilasi. Ini cukup populer, dan mungkin layak dipelajari jika Anda punya waktu.
C ++ adalah bahasa yang rumit, dan penggunaannya dalam ilmu komputasi adalah kontroversial. Set fiturnya yang besar dapat membuatnya mudah untuk menulis perangkat lunak yang sulit dipelihara dan membutuhkan waktu lama untuk dikompilasi. Namun, digunakan dengan bijaksana, fitur seperti templating dan overloading operator dapat digunakan untuk efek yang besar, seperti pada proyek-proyek seperti deal.II, Blaze, dan Elemental (antara lain). C ++ memiliki kurva belajar yang curam ketika datang ke fitur-fiturnya yang canggih, dan saya telah mendengar laporan anekdotal dari orang yang membutuhkan waktu bertahun-tahun untuk merasa seperti mereka telah mempelajari bahasa lengkap. Namun demikian, ini juga merupakan bahasa yang populer, terlepas dari masalah kegunaan dan set fitur yang rumit. Mungkin perlu belajar, jika hanya untuk membuat diri Anda lebih mudah dipekerjakan; pesaing utamanya dalam ilmu komputasi adalah Fortran dan C, yang juga patut dipelajari.
Apa pun yang Anda putuskan untuk pelajari akan didasarkan pada apa yang sebenarnya Anda butuhkan. Tentu, senang mempelajari Python dan C ++, tetapi mengingat keterbatasan waktu dan sumber daya, Anda mungkin hanya akan mempelajari apa yang sebenarnya perlu Anda gunakan, dan itu tergantung pada komunitas tempat Anda bekerja.