

For many of those years I had no reason to work beyond the toolbox I had created for my job.

I also have been an avid Matlab user for 10+ years. For the Matlab side, I know there's a statistics toolbox, but I'll let someone more knowledgeable fill in the blanks (my experience with Matlab is limited to numerical work unrelated to statistics). (Though I suspect both will meet the needs for 80% of people doing statistical work.) For the Python side of things see this question: Python as a statistics workbench. On the availability of statistical libraries for modeling and such, both are somewhat lacking when compared to something like R. Interfacing with C is about as easy in either language. A lot of this has become less relvant with the rise of Numpy/Scipy, you're just as likely to find optimization and machine learning libraries available for Python. The resulting aesthetics and architecture are maddening if you're a programming language geek, but in utilitarian terms, it gets the job done. On the other hand, Matlab is kind of the PHP of scientific computing - it strives to have a function for everything under the sun. A lot of the research community uses it and if you're looking for say, some algorithm related to a paper in compressed sensing, you're far more likely to find an implementation in Matlab. On the second, Matlab really does shine with numeric work. For example, see Greg Wilson's book: Data Crunching: Solve Everyday Problems Using Java, Python, and more. Once you start dealing with data munging and related issues, Python outshines Matlab. Matlab is great as long as your world is roughly isomorphic to a fortran numeric array. On the first, the biggest difference is that Python is a general purpose programming language. Lets break it down into three areas (off the top of my head) where programming meets statistics: data crunching, numerical routines (optimization and such) and statistical libraries (modeling, etc). The Matlab UI is written in Java, which has unpleasant ideas about memory management.
#PLOTS MATLAB VS PYTHON CODE#
Legacy code using the old style will persist for some time.

At the very least, I would suggest you try to become equally proficient in a number of languages (I would suggest R as well). Once you are sufficiently skilled in a language, when you work in a language you are learning, it will seem like you are not being productive enough, and you will fall back to using your default best language. As a diehard Matlab user for the last 10+ years, I recommend you learn Python.
