I started my scientific computing life on Matlab and I’ve never liked Python. As far as “simple” languages go, Python is actually very complicated (much more so than Matlab, I would say). There is just something about the style that Python encourages that I strongly dislike.

I recall using Pandas and being shocked to find that the “groupby” method returned a sequence of values with non-uniform, non-hierarchically related types seemingly at random. Presumably these types were all “duck like” enough according someone’s understanding of how the sequence would be used, but it broke my code. Even with all the syntactic shenanigans, its easier to understand what is going on with the Tidyverse. I also dislike that slices in Numpy can side effect the arrays they come from. Copy on write/pure behavior in Matlab is much simpler to reason about.

Python is also really slow for no good reason. Its all network effects and I have just accepted that I need to program in Python, but I just don’t like it.

The fact that Python is open source and is, pragmatically speaking, a general purpose programming language (as opposed to just a theoretically Turing complete one) should not be discounted.

I used MATLAB until the year 2006. In that year, I moved to a brand new project and, a bit sick of the intrusive MATLAB license server, and with my office mate pointing me in the direction, I took up Python to replace the scientific computing I did. I have never looked back. The existence of open source NumPy, SciPy and Matplotlib were the main reasons why.

I started my scientific computing life on Matlab and I’ve never liked Python. As far as “simple” languages go, Python is actually very complicated (much more so than Matlab, I would say). There is just something about the style that Python encourages that I strongly dislike.

I recall using Pandas and being shocked to find that the “groupby” method returned a sequence of values with non-uniform, non-hierarchically related types seemingly at random. Presumably these types were all “duck like” enough according someone’s understanding of how the sequence would be used, but it broke my code. Even with all the syntactic shenanigans, its easier to understand what is going on with the Tidyverse. I also dislike that slices in Numpy can side effect the arrays they come from. Copy on write/pure behavior in Matlab is much simpler to reason about.

Python is also really slow for no good reason. Its all network effects and I have just accepted that I need to program in Python, but I just don’t like it.

The fact that Python is open source and is, pragmatically speaking, a general purpose programming language (as opposed to just a theoretically Turing complete one) should not be discounted.

I used MATLAB until the year 2006. In that year, I moved to a brand new project and, a bit sick of the intrusive MATLAB license server, and with my office mate pointing me in the direction, I took up Python to replace the scientific computing I did. I have never looked back. The existence of open source NumPy, SciPy and Matplotlib were the main reasons why.