SiLo wrote:I'll just leave my irrelevant comment here:
I HATE MATLAB.
-Physics Graduate.
I have to ask - why? Or what do you prefer? In my experience there aren't many better choices for the non-programmer engineer or scientist, especially if you want to just jump in and do something quick and easy.
Memory is managed for you, you don't have to declare types, you don't need to manually compile stuff before you run it, variables can just "hang out" in the workspace as you build your script or program up, arrays will automatically re-dimension themselves as you add data to them (though admittedly this is bad practice for performance), operating on an entire array is easy without having to write loops all over the place, the help documentation is outstanding, errors are descriptive, all the libraries [toolboxes] are
incredibly practical for engineering / science work, and there's a large community of users in the technical fields. Not to mention Simulink makes for pretty easy systems modeling.
There are certainly some downsides.. not super fast, editor isn't anywhere as great as Visual Studio with its Intellisense (though really you have to have more strongly or static typed language for that),GUI's aren't particularly rich, and it's not cheap.
If (assuming you don't have a broad computer science and/or programming background) you want to experience hell.. try doing your project in C/C++. For anything I've worked on since graduating 2007, I'd estimate it would easily take me 100x longer to program in C/C++.. and that's truly no exaggeration. Having had to do stuff recently in those languages, it is a much less forgiving environment of unmanaged memory and a very different base library which really isn't conducive to what I'd consider practical engineering work.
Ultimately for me I'd say the strengths or pitfalls of any language come down to (a) how easy and powerful the language is itself, (b) how extensive the libraries are. Matlab language itself is.. eh, it's alright - nothing incredible but it's a safe little sandbox to play in. The libraries are where it crushes anything else - because who has time to write your own basic 1- and 2-d interpolation methods.. much less digital filter implementations.. optimization and data fitting routines.. etc, etc. In many other languages none of that exists for you, you have to make it yourself!
I do hear good things about Python and the libraries that have grown around it, though the impression I get is that while the language is wonderful the libraries aren't quite as extensive as what the Mathworks offers. So for me I live between C# (which is wonderful!) and Matlab.
-Working mechanical engineer
Grip is a four letter word. All opinions are my own and not those of current or previous employers.