

Legacy code using the old style will persist for some time. There are now 2 ways to do object-oriented programming in Matlab, which is confusing at best.This indicates that I am not their target customer, rather they are looking to expand market share by making things worse for power users. I have not found my user experience to have improved over the last 5 years (when I started using Matlab instead of octave), even though Mathworks continues to add bells and whistles.saving graphs to file is dodgy at best in Matlab.This has been the wrong algorithm since the 70's. The most glaring example of this is Matlab's median function, which performs a sort of the data, then takes the middle value. Much of the m-code, including many of the toolbox functions, and some builtins, were designed to be obviously correct, at the expense of efficiency and/or usability.Licenses for parallel computation in Matlab are insanely expensive.

Furthermore, Mathworks has no incentive to improve this situation, because they make money on selling toolboxes, which compete with freeware packages

Mathworks controls the 'central file exchange', and installation of add-on packages seems very clunky, nothing like the excellent system that R has. There is not a good system to manage third party (free or otherwise) packages and scripts.There is a freeware clone, octave, which has good compliance with the reference implementation.This is the only reason I use Matlab instead of octave. It is the lingua franca among numerical analysts.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.
