
Michael Vanier comments my defense of Matlab:
I used objects, and even a lot of functional constructs. I don't see any reason to call it a creeping horror. It is quite homogeneous and simple, and is decently interfaced.
It's incredibly inconsistent. To cite just one example, the syntax is geared towards the notion that "everything is a two-dimensional matrices of double-precision floating point numbers". If you want to have a three-dimensional array, you can do that, but the syntax is not going to be nearly as elegant, because matlab's array syntax doesn't scale at all.
Come on... Matlab has cells and the full object-oriented layer nowadays. There are short ints, strings, complex numbers, etc. The extensibility is good. The overall consistency is reasonable. Syntax for 3D arrays? Give me one single language where this is natural and immediate. We are 2D readers/writers, our way of presenting information is 2D within a text editor, and similar problems hit everywhere. I used 3D matrices for the image synthesis, for colour image processing, for simulations of physical systems. It wasn't worse, and even better than in many other languages.
I haven't used matlab seriously for a few years (thankfully), but I vaguely recall several other instances of the same problem. Basically, matlab makes programming very easy within a very restricted domain, but if you want to go outside that domain, you will have to endure a lot of pain.
Since you vaguely remember something you are thankfully away from, I believe I can continue to "endure my pain" and I can assure all the other readers of this text from the perspective of somebody who uses Matlab *NOW*, that this "pain" is supportable. Optional smiley. The vectorized "comprehension" expressions are really neat.
In contrast, Mathematica has a pretty consistent and elegant language.
Since I respect others' religions I won't argue. But I hope you don't try to convince us that Mathematica is good at number crunching... Jerzy Karczmarczuk