Tuesday 16 March 2010

General Thoughts on MATLAB

MATLAB is a nice program. It's great for doing what it does, expandable, pretty easy to program, overall a very handy tool. Seriously, though, they haven't thought much about usability so far as I can tell. This isn't a rant about the program being hard to use for built-in functions. In fact, that's all pretty easy and, more importantly, well-documented.

This is a rant about development problems. Like any progamming language, you can code MATLAB programs in whatever text editor you feel like using. Unlike most, however, there are no third-party IDEs. Compiling code requires that MATLAB be installed (and in most, if not all, cases running), and if not MATLAB then a very expensive compiler. There's no such thing as a third-party compiler.

Compiling code is important as it's how you test it. Hopefully you don't get compilation errors, but if you do they'll tell you what's wrong. But you can't test for run-time errors without first compiling the code. In other words, I can't possibly develop efficiently on any machine that doesn't have their very expensive software on it. Nor can anyone else, of course.

I find this to be a major flaw with MATLAB. As great of a platform as it may be, it's such a hassle to program that most people prefer to program in a more accessible language. And it's not like those languages can't be manipulated to allow for the programs that MATLAB can support. In my opinion it was a seriously poor decision on their part.

I don't think Mathworks minds, however. They have a very strong hold on the academic and scientific markets. Their customers, mostly, make due with what they have. In other words, I don't expect anything to be changing on these fronts.

All I can do is post a mini-rant on my blog and suffer though the little inconveniences that these problems cause me. Or theoretically fork over $5,000 (no joke, I made an account on Mathworks to confirm this) to get the compiler for personal use. Can you guess which solution I chose?

No comments: