MATLAB vs Python

Actually, I have been thinking the same thing myself. Some of the things that make Matlab great are:
(1) Easy scripting
(2) Optimized for vector and matrix data types both in performance AND programming syntax.
(3) Interactivity
(4) Optimized libraries
(5) A well designed and easy to use IDE.
(6) Immediate accessibility to numerical data oriented actions: calculations, special functions, plotting, solving, etc.
(7) Seamless integration between numerical and symbolic computation.

It is probably not possible to have all of these things simultaneously with Python. However I think one could use the Eclipse RCP to recreate an IDE environment similar to Matlab. By using Sage as the standard interpreter, one would have mathematical operations at your finger tips.

Direct, intuitive access to all the functions and operations one might want would still take some work and thought. This is particularly true for data display.

I think Python does have some features that Matlab lacks that would be nice in a numerical environment:

(1) Keyword Arguments. Since programming in Python, I've really come to hate
set('linewidth', 5, 'color', red, ...) etc.

(2) Operation Overloading. It would be nice to be able to create special data types that have operations not already planned out by Mathworks. For one example, I've had the idea of implementing some sort of "Einstein Notation" multiplication in which you could multiply and sum over a specified index.

(3) Object oriented programming in general. Objects are great for preventing folders full of short functions.

(4) Access to better GUI libraries.

(5) OPEN SOURCE!!!!!!! If I want, I could modify standard algorithms (such as solving or fitting) instead of having to code my own. If optimization was done through SciLab and Cython, then I could modify builtin functions and recompile them to fast extensions.

(6) Completely cross-platform. Combined with (5), whatever code I write can by run by anyone anywhere.

Filed under  //  MATLAB   Python  
Comments (2)
Posted