I have not found this to be the case.

MATLAB is just fine for simple algorithms that analyze data in a sort of "use once" case. It's great for throwing something together, such as plotting data from a sensor, simulating a design, making nice figures for a publication, that sort of thing.

But MATLAB is not, and should not be thought of, as a general-purpose programming language, like C. Because of some early decisions made by the matlab folks, there are many limitations. Obviously, matlab is not an ideal language for a device driver. And not ideal for any type of network service. So let's ignore those cases. For a GUI app, matlab makes what would be a few lines in QT a nightmare of get_this() and handles_that() calls. It's infuriating. It's also slow and uses a ton of memory. For analyzing any data set over 100 MB, forget it, you'll be using several gigs just to load the set in.

There is a place for matlab, and there are many places for not matlab.

While I'm at it, here are some other things that I despise about matlab:

1) matlab is loosely typed. Ever get this error: "Cannot determine if foo is a variable or a file"

2) function interface operators are the same as matrix operators. You would think that a language that supposedly caters to linear (matrix) math wouldn't have screwed this up. If I do foo(1), this could be a function call or asking for matrix element 1 of matrix foo.

3) no pointers. Enough said.

4) matrix elements start at n=1 rather than n=0. EVEN BASIC doesn't do that. For a mathematical language, this is heresy. They are denying the value of zero. Something as simple as a Maclaurin or Fibonacci series becomes a constant battle of "if n=0 then..." exceptions. Or you offset everything. It's just pure annoyance.

5) doesn't have a good debugger

6) parallel-loop programming takes longer to "spool" the job than it does to just run the darn thing on a single CPU. Oh, and their standard multiprocessor license only covers 8 cores. I have machines with over 40 cores that will never see a matlab parfor statement.... which, I'm obviously ok with...

7) Stupid capital variables in documentation,

8) 1990s-erra save dialog boxes on unix platforms that don't even allow for "favorites". Every time I save or open, I start in the current directory and have to navigate folder-by-folder to where I want to go. I feel like this is something from my CDE days.

9) unix print and pdf export is horribly broken. These functions NEVER format anything correctly. Every time I am presented with cropped cut-off plots. The EPS export works fine, why not PDF and printing?

10) default pathdef depends on what directory you launch matlab from. Just another annoyance.

Anyway, rest in peace matlab, I have moved on.