News for hackers. Stuff that matters.
Re:Notation as a Tool of Thought by mturmon on Monday October 17, 2011 @12:46AM (#3119207)
I was surprised to learn, given the inelegance of much of Matlab, that it was explicitly influenced by APL. See the blue callout box at

http://www.mathworks.com/company/newsletters/news_notes/clev...

which shows part of a 1983 plan for Matlab:

"Combining the technology of 1) mice and windows, 2) matrix and APL environments, and 3) direct manipulation, will do for engineers what Lotus 1-2-3 has done for the business world."

Ulf Grenander, the Brown University mathematician who invented statistical pattern theory, once used APL, but moved to Matlab for his expository book on pattern theory:

http://books.google.com/books?id=lxBDcFvFFvsC&pg=PA146&#...

I agree that the vectorized operations in Matlab are good at lifting computational ideas out of the fog of nested for loops. It is more compact to represent some matrix algebra in Matlab notation than in ordinary matrix notation, as anyone who has read Golub and van Loan knows.

It's weird to proclaim, but this concise notation can be as freeing for certain problems as Prolog's declarative transformations, and functional composition in Lisp.

Re:Notation as a Tool of Thought by forkandwait on Monday October 17, 2011 @10:14AM (#3120531)
I think "the inelegance of Matlab" is MUCH overstated. It has some weirdnesses, some of which are fixed in Octave (it's gnu cousin). But some apparent bad choices (anything to do with cell arrays, especially) are really quite powerful when you get to know them.

(If you ask me, R/SPLUS is the inelegant language, especially when doing serious matrix -- yuck! But it's trendy....)

Matlab is a lot like SQL -- people love to hate on it because it isn't perfect and they know it really well (because it is ubiquitous and pragmatic).

Re:Notation as a Tool of Thought by mturmon on Monday October 17, 2011 @06:26PM (#3122766)
It has improved a lot. In the late 1990s it was decidedly behind the scripting languages of the time, and that's partly what I was referring to.

And, the weird lack-of-speed issues. It used to be that you could implement a matrix multiply, in an m-file, that would be faster than the builtin *. I benchmarked this myself.