MATLAB and APL: Meeting Cleve Moler
I have often described MATLAB as “APL with a normal character set,” but I didn’t actually know anything about how MATLAB came to be or if there was any relationship. Last night, I got to ask the man who invented MATLAB, Cleve Moler, at the IEEE Computer Society Awards Dinner, where Cleve was named a “Computer Society Pioneer.” When I introduced myself as coming from Georgia Tech, he took notice. “Georgia Tech is a big MATLAB user!” We teach 1200 Engineering students a semester in MATLAB.
Cleve developed MATLAB (in Fortran) as a Matrix Calculator (explicitly, a “MATrix LABoratory”) for his students. There was no explicit tie to APL, but he saw the connections. He said that he’s always seen MATLAB as “portable APL” because he used a traditional character set.
It’s not just the character set though. “Iverson showed me J. I wanted MATLAB to be understandable by normal people.” He said that someone once converted a program he’d written in MATLAB into APL. “I asked what that was. They told me, ‘That’s your program!’ I couldn’t recognize it.” APL is about being uniform about everything, but MATLAB “is a mishmosh of all kinds of things.”
Others joined in the conversation. “What do you think about Mathematica?” Cleve responded, “Mathematica is APL for the 21st century. Mathematica has a uniformity about it.”
Cleve’s ideas about what make a language usable “by normal people” are interesting. The success of MATLAB in terms of its use by so many people in so many different contexts, domains, and application areas give him real authority for making such claims. He sees a “mishmosh” as being easier for people to understand than uniformity. Marvin Minsky famously said that the brain is likely a “kluge.” Do we actually prefer messy languages, with less uniformity, perhaps as a reflection of our “kluge” nature?