Jameson: Yes, the Matlab choice is slow and doesn't scale, but it's very easy to reason about. I think it was instructive for me to try and think of a real life bug that realized my worries. I came to realize that most of the code where I was using vec() was embedded in a chain of function calls like
b = M * exp(vec(a)) ....so I see your point about fast easily composible functions when output and input share memory. I recently had a discussion with a colleague that commented that R was essentially developed by statisticians which is why it doesn't scale well (not sure if that is actually true but thats beside my point). On the other hand, things like python are written by CS folks which hinders access for mathy-science folks who just want to prototype an idea every now and again without investing the time to upgrade their programming skills. I think julia can have the best of both: easy to learn + modern CS.