Bu tür sorulardan birindeki zorluk, cevabın topluma oldukça bağımlı olmasıdır.
Sorularınızdan bazılarını gelişigüzel sırada cevaplamak için:
MATLAB hem akademide hem de endüstride çok kullanılır. Endüstride biraz kullanılmasının nedenlerinden biri de akademide öğretilmesidir. MATLAB'ın Lincoln Laboratuarında ve DuPont'un araştırma ve geliştirme bölümlerinde kullanıldığını biliyorum.
Python'da yazılmış, sempozyum ve SAGE gibi sembolik hesaplamada iyi olan yazılım paketleri vardır. Özel ilgi alanlarınıza, özellik gereksinimlerine ve kişisel tercihlerinize bağlı olarak, Mathematica (veya Maple veya diğer bilgisayar cebir sistemleri) bu paketlerden daha üstün olabilir.
MATLAB, bazı sembolik hesaplamalar için kullanılabilen bir Sembolik Matematik Araç Kutusu'na sahiptir, ancak benim deneyimime göre sembolik manipülasyon yetenekleri Mathematica ve Python'dan daha zayıftır. Teorik olarak C ++ 'da bazı sembolik manipülasyonlar yapılabilir, ancak bu hantal değildir. MATLAB aynı zamanda iyi bir genel amaçlı dil değildir. Doğrusal cebir ve sayısal matematiği iyi yapar, ancak iyi giriş / çıkış yeteneklerine sahip değildir. C ++ veya Python'a kıyasla iyi paralel yeteneklere sahip değildir (paralel MATLAB, MATLAB Star-P ve Paralel Hesaplama Araç Kutusu gibi varyantlar olsa da). Grafik yetenekleri bile bazı işleri kullanabilir. MATLAB, lisansı olan bir kuruma bağlı olmadığınız sürece de pahalıdır. Her araç kutusunun satın alınması pahalıdır ve genellikle yüzlerce ila binlerce dolar arasında bir maliyete sahiptir.
Mathematica, sembolik hesaplamaya ek olarak sayısal hesaplama yapar. İnsanların sayısal çalışma için Python ve MATLAB kullandıklarını gördüğüm kadarıyla sayısal hesaplama için kullandıklarını görmedim. Paralel yetenekleri de var, ancak büyük süper bilgisayarlara ölçeklenmiyor.
Python, öğrenmesi kolay ve kullanılabilir olarak kabul edilen iyi bir genel amaçlı dildir. Büyük süper bilgisayarlarda kullanılır (örneğin, PyClaw, petsc4py, mpi4py ve diğerleri) ve iyi ölçeklendirilir. Ayrıca saygın paketler (NumPy ve SciPy gibi) vardır; geniş, aktif bir topluluk; iyi giriş / çıkış işleme yetenekleri; ve iyi grafik kütüphaneleri ile birlikte geniş bir kütüphane deposu (PyPI'ye bakın). Yukarıda belirtilen tescilli paketlere kıyasla ücretsizdir. MATLAB veya Mathematica'nın işlevlerinin çoğunu ücretsiz olarak bulunan Python paketlerinde bulabilirsiniz. Python'un ana dezavantajı, C ++ gibi derlenmiş dillerden daha yavaş olma eğilimindedir, ancak bu dezavantaj Cython, Numba ve PyPy'nin sürekli gelişimi ile azalmaktadır; daha yavaş Python kodunu C (veya C ++ veya Fortran) koduyla ve uygun şekilde yazılmış Python sarmalayıcıları ile hafifletilebilir. Yorumlanan birçok kişi, Python ile derlenmiş dillerden daha yüksek verimlilik rapor eder. Oldukça popüler ve zamanınız varsa muhtemelen öğrenmeye değer.
C ++ karmaşık bir dildir ve bilgisayar bilimlerinde kullanımı tartışmalıdır. Geniş özellik seti, bakımı zor olan ve derlenmesi sonsuza kadar süren yazılım yazmayı kolaylaştırabilir. Bununla birlikte, mantıklı bir şekilde kullanıldığında, templating ve operatör aşırı yüklenmesi gibi özellikler, deal.II, Blaze ve Elemental (diğerlerinin yanı sıra) gibi projelerde olduğu gibi büyük bir etki için kullanılabilir. C ++, gelişmiş özellikleri söz konusu olduğunda dik bir öğrenme eğrisine sahiptir ve yıllar süren insanların tam dili öğrendiklerini hisseden anekdot raporları duydum. Bununla birlikte, kullanılabilirlik endişelerine ve karmaşık özellik setine rağmen, aynı zamanda popüler bir dildir. Sadece kendinizi daha istihdam edilebilir kılmak için muhtemelen öğrenmeye değer; hesaplama bilimindeki ana rakipleri de öğrenmeye değer Fortran ve C'dir.
Öğrenmeye karar verdiğiniz her şey, gerçekte neye ihtiyacınız olduğuna bağlı olacaktır. Elbette, hem Python hem de C ++ öğrenmek güzel, ancak zaman ve kaynak kısıtlamaları göz önüne alındığında, muhtemelen sadece gerçekten ne kullanmanız gerektiğini öğreneceksiniz ve bu, çalıştığınız topluluğa bağlı.