I’m now the proud owner of a MATLAB Home license:
MATLAB® is a high-level language and interactive environment for numerical computation, visualization, and programming. Using MATLAB, you can analyze data, develop algorithms, and create models and applications. The language, tools, and built-in math functions enable you to explore multiple approaches and reach a solution faster than with spreadsheets or traditional programming languages, such as C/C++ or Java™.
Why did I do it? 1) I want to be able to tinker at home, 2) the license for home use is only $150, 3) IDL, my primary programming language for nearly 20 years now, doesn’t offer home use licenses (Commercial licenses for MATLAB and IDL each run about $2k.), and 4) MATLAB has become the lingua franca of technical computing.
IDL is great for algorithm development and I like it better than MATLAB for image display – not to mention that in the head-to-head comparisons I’ve done custom algorithms run 2-3x faster in IDL than in MATLAB – but outside of a few niche areas hardly anyone knows it. I’m finding that’s increasingly an issue at work. At a minimum I need to be fluent in both.
When I first started using MATLAB at work the analogy I made was switching from French to Spanish as your primary language. (I don’t speak either but the analogy sounded appropriate.) The structure of my code would be fine but there’d be tons of grammatical errors. (Row major vs column major still gives me fits, as do matrix indices running 1 to n as opposed to 0 to n-1. Oh, and the difference between what you get back from their respective 2D FFT functions? It took me two weeks to discover that the difference in convention mattered for what I was doing and then to get the MATLAB-IDL mapping right.)