Một khó khăn với bất kỳ loại câu hỏi nào là câu trả lời phụ thuộc nhiều vào cộng đồng.
Để trả lời một số câu hỏi của bạn theo thứ tự hỗn loạn:
MATLAB được sử dụng rất nhiều cả trong học viện và trong công nghiệp. Một trong những lý do nó được sử dụng khá nhiều trong công nghiệp là vì nó được dạy trong học viện. Tôi biết một thực tế rằng MATLAB được sử dụng tại Phòng thí nghiệm Lincoln và trong các bộ phận nghiên cứu và phát triển của DuPont.
Có những gói phần mềm được viết bằng Python rất tốt trong tính toán tượng trưng, chẳng hạn như sympy và SAGE. Tùy thuộc vào sở thích cụ thể của bạn, yêu cầu tính năng và sở thích cá nhân, Mathicala (hoặc Maple hoặc các hệ thống đại số máy tính khác) có thể vượt trội so với các gói này.
MATLAB có Hộp công cụ toán học tượng trưng có thể được sử dụng cho một số tính toán tượng trưng, nhưng khả năng thao tác biểu tượng của nó, theo kinh nghiệm của tôi, yếu hơn Mathicala và Python. Một số thao tác tượng trưng về mặt lý thuyết có thể được thực hiện trong C ++, nhưng nó không hiệu quả. MATLAB cũng không phải là một ngôn ngữ có mục đích chung tốt. Nó làm đại số tuyến tính và toán học số tốt, nhưng nó không có khả năng đầu vào / đầu ra tốt. Nó không có khả năng song song tốt (mặc dù có các biến thể như MATLAB song song, MATLAB Star-P và Hộp công cụ tính toán song song) so với C ++ hoặc Python. Ngay cả khả năng đồ họa của nó có thể sử dụng một số công việc. MATLAB cũng đắt tiền trừ khi bạn liên kết với một tổ chức có giấy phép. Mỗi hộp công cụ là đắt tiền để mua, và thường chi phí cho đơn hàng hàng trăm đến hàng ngàn đô la.
Mathicala không tính toán số ngoài tính toán tượng trưng. Tôi chưa thấy mọi người sử dụng nó để tính toán số lượng nhiều như tôi đã thấy mọi người sử dụng Python và MATLAB cho công việc số. Nó cũng có khả năng song song, nhưng sẽ không mở rộng cho các siêu máy tính lớn.
Python là một ngôn ngữ có mục đích chung tốt, được coi là dễ học và có thể sử dụng. Nó được sử dụng trên các siêu máy tính lớn (ví dụ, xem PyClaw, petc4py, mpi4py, và các loại khác), và quy mô tốt. Nó cũng có các gói số được đánh giá cao (như NumPy và SciPy); một cộng đồng rộng lớn, tích cực; khả năng xử lý đầu vào / đầu ra tốt; và các thư viện đồ họa tốt, cùng với một kho thư viện lớn (kiểm tra PyPI). Nó là miễn phí, so với các gói độc quyền được đề cập ở trên. Bạn có thể tìm thấy hầu hết các chức năng của MATLAB hoặc Mathicala trong các gói Python có sẵn miễn phí. Nhược điểm chính của Python là nó có xu hướng chậm hơn các ngôn ngữ được biên dịch như C ++, mặc dù nhược điểm này đang giảm dần với sự phát triển liên tục của Cython, Numba và PyPy; nó cũng có thể được giảm thiểu bằng cách thay thế mã Python chậm hơn bằng mã C (hoặc C ++ hoặc Fortran) và các trình bao bọc Python được viết một cách thích hợp. Được giải thích, nhiều người báo cáo năng suất cao hơn với Python so với các ngôn ngữ được biên dịch. Nó khá phổ biến, và có lẽ đáng để học hỏi nếu bạn có thời gian.
C ++ là một ngôn ngữ phức tạp và việc sử dụng nó trong khoa học tính toán đang gây tranh cãi. Bộ tính năng lớn của nó có thể giúp bạn dễ dàng viết phần mềm khó bảo trì và mất thời gian để biên dịch. Tuy nhiên, được sử dụng một cách thận trọng, các tính năng như tạo khuôn mẫu và quá tải toán tử có thể được sử dụng rất hiệu quả, vì nó đã có trong các dự án như deal.II, Blaze và Elemental (trong số những thứ khác). C ++ có một đường cong học tập dốc khi nói đến các tính năng nâng cao của nó và tôi đã nghe các báo cáo giai thoại về những người mất nhiều năm để cảm thấy như họ đã học ngôn ngữ đầy đủ. Tuy nhiên, nó cũng là một ngôn ngữ phổ biến, bất chấp những lo ngại về khả năng sử dụng và bộ tính năng phức tạp. Có lẽ nó đáng để học hỏi, nếu chỉ để làm cho bản thân bạn có việc làm hơn; đối thủ cạnh tranh chính của nó trong khoa học tính toán là Fortran và C, cũng đáng để học hỏi.
Bất cứ điều gì bạn quyết định học sẽ dựa trên những gì bạn thực sự cần. Chắc chắn, thật tuyệt khi học cả Python và C ++, nhưng với những hạn chế về thời gian và tài nguyên, có lẽ bạn sẽ chỉ học những gì bạn thực sự cần sử dụng, và điều đó phụ thuộc vào cộng đồng bạn làm việc.