I started using IDL at one point (the facility used it) and hated the syntax--but, I will say that their licensing was cheap. Then, I moved to Matlab and ran into problems building maintainable code (to be fair, I think things improved after Matlab 7) and with exchanging code with people who did not have access to all of the toolboxes (want to optimize a function--that will be another few thousand dollars....Want to do a bit of DSP....). Also, in fairness, their editor is rather nice--so is the JIT) So, to build code that I could exchange (and to do GUI building, etc) I switched to primarily to the python/numpy/scipy/matplotlib stack. Somehow, I passed over octave....I would recommend numpy/scipy/matplotlib. The plots are in matplotlib are excellent and the community is very friendly. Also, with numpy, I can do array processing very quickly. Finally, if you need to build an app, then you can make a GUI, or provide a webservice. Finally, you can play with libraries such as CUDA and bind them to python if your project needs it.