I think the author is misremembering Wolfram's claims. I recall attending the first open demo of SMP, where Wolfram (and I think co-author Chris Cole) were demoing it in a large Caltech lecture hall. Here's what I recall.<p>They had tried to use Macsyma for their physics work, and found experimentally that it was too slow on what they considered to be "medium" problems, and could not handle "large" problems at all. They were trying to do things that were pushing the limits, and pushing them hard, of what could be done on the hardware of the day [1].<p>They showed some benchmarks comparing SMP to Macsyma using the kind of problems that had arisen in their physics research. For "small" problems, SMP was a bit faster. Maybe 2 or 3 times or so faster.<p>For "medium" problems, it was 100 times faster.<p>And it could do "large" problems.<p>I don't think I ever heard Wolfram say anything about Lisp being 100 times slower than C in general. I only heard claims like that when he was talking specifically about building systems like SMP, and was comparing basing such systems on top of a general purpose high level language (Lisp) vs. basing them on something built and optimized specifically to support a system like SMP.<p>[1] The SMP work was done on CITHEP's (Caltech High Energy Physics) VAX 11/780. I was an undergrad at Caltech at the time, working part time at CITHEP as a system programmer and admin, so knew many people involved in SMP development and got to watch it as it progressed, and then was put into production by working physicists.
Mathematica is an interesting case study for a general-purpose software package that happens to be more feature-full and functional -- not just "more convenient" or "better UX" -- than any open-source counterparts.<p>I tend to use some proprietary scientific software, but a lot of it is because academia already has already invested in codebases for, say, Stata, GAMS, Matlab and so on. But Matlab is two steps removed from raw Fortran; and what sets it apart from the many identical-syntax clones are a few narrowly-oriented toolsets aimed at some kinds of engineers.<p>Mathematica is the only one I buy versions for my home computer. It's very, very good.
Wolfram has always seemed to me to have the biggest case of "Not Invented Here" syndrome I've ever heard of. I mean, not only did he have to make his new language, new search engine, etc. He even tried to make a new kind of science...<p>If that's not extreme NIH, I don't know what is.
I wonder if Wolfram's 100-times-slower reference point was based on a very particular comparison. Suppose you benchmarked a numerical algorithm that dealt with a lot of matrix-vector operations. And suppose you compared, on the one hand, a C or Fortran implementation that used arrays and native machine finite-precision numbers, against a Lisp implementation that used lists and the sort of "exact" arithmetic described in the usenet post.<p>This would not, of course, be a good comparison between the languages, but it might well give you a 100x speed difference. Taking Pitman's story at face value, it sounds like Wolfram wasn't very sophisticated about these things, and wasn't open to listening to explications. So he might have extrapolated a single dumb benchmark into a universal truth.<p>At the same time, it sounds like Pitman tried to convince Wolfram to represent floats as the ratio of two bignums, "with lots of other hidden bits to assure that any decimalization had enough bits to be precise." I can understand Wolfram not particularly wanting to taste any of that pie. I have worked with a simulation platform that uses paired BigNums <i>just</i> for time values (other values in the simulation use regular double-precision variables), and it was a big drain on simulation speed.
Well, it's not entirely surprising to hear an anecdote about a young (19 year old), brilliant programmer arrogantly dismissing legitimate possibilities.
Random Wolfram story, was at lunch yesterday at my old college and respected computer scientist who originally interviewed me. He told me that he first showed Wolfram a computer.<p>This guy was a friend of Wolfram's mother who asked for help because 8 year old Stephen was "bored with dinosaurs" and wanted something else to think about.
Wolfram himself has a far more detailed write-up on the development of SMP and Mathematica.<p><a href="http://blog.stephenwolfram.com/2013/06/there-was-a-time-before-mathematica/" rel="nofollow">http://blog.stephenwolfram.com/2013/06/there-was-a-time-befo...</a><p>It might be biased or self-serving but it's more interesting than an offhand USENET recollection about a brilliant and arrogant young man.
Seems like a good example of technical people placing too much importance on a technical decision.<p>It seems clear Lisp would have been a perfectly fine choice, as would a number of other languages. It also seems unlikely the world (or even Mathematica) would be dramatically different for it.<p>I wish more "X is better than Y because of Z" discussions would admit aesthetics were an important factor. Instead we end up with convoluted justifications that just annoy everyone (Lisp is slow, C is fast, C++ is complicated)
This might be obvious to many, but the language of Mathematica has better support for ("abstract") currying than Lisp, something like<p>A[B, C][X, Y][Z]<p>does not straightforwardly translate into an S-Expression but is potentially convenient for symbolic algebra. I believe that I read this emphasis on currying in one of Wolfram's own accounts on how Mathematica came to be. It is probably also important that the internal data structure used by Mathematica is not a list, I think the support for "level specs" points at how internally the data is most likely represented, although I'm not sure.
<i>"During the dinner discussion leading up to this definition the foreword to one of the Mathematica books was mentioned, where Stephen Wolfram (in third person) wrote "Stephen Wolfram is the creator of Mathematica and is widely regarded as the most important innovator in scientific and technical computing today." In honour of this self-assessment I suggest we call the unit of ego the Wolfram."</i> - "Monumental egos" blog post by Anders Sandberg<p><a href="http://www.aleph.se/andart/archives/2009/04/monumental_egos.html" rel="nofollow">http://www.aleph.se/andart/archives/2009/04/monumental_egos....</a>
Maybe KMP should have recycled Jerry Pournelle's account for a certain bright 19-year-old, instead... ;)<p><a href="http://www.stormtiger.org/bob/humor/pournell/story.html" rel="nofollow">http://www.stormtiger.org/bob/humor/pournell/story.html</a><p>"Personally, I'd just turn off his account. It's not like it's the first time, and he not only flaunts his use of our machines but stabs us in the back with grumblings about why he doesn't like this or that program of ours when he gets a chance. (Am thinking particularly of an article he wrote which condemned Lisp for reasons amounting to little more than his ignorance, but which cited Teach-Lisp in a not-friendly light... The man has learned nothing from his presence on MC and sets a bad example of what people might potentially accomplish there. I'd rather recycle his account for some bright 12-yr-old...)" -KMP
If he had used Lisp how would he have ported it to so many machines? I programmed in Common Lisp quite a bit in grad school and I liked it, but it was always on a specific platform. I would use Lisp even now, but I'll often use C/C++ just because I know I can get it to work most everywhere.
Wolfram has said fellow student Rob Pike (who went on to co create go etc) convinced him to use C though i've never seen the reasons enumerated. So while he certainly comes off as arrogant and certainly reinvented a lot of stuff it isn't like he didn't listen to anyone...
What language features distinguish Mathematica from lisp? Are we just talking about the m-expression syntax, or are there more fundamental differences?
This quote struck me "I'm pretty sure his response was that what tools
others chose to use or not use was not his concern"<p>On the one hand I feel a conflict of wanting to use every new, shiny tool. But a dose of this attitude would help me get a lot more work done.
I always just assumed it was mostly because of the desire to have a proprietary system he could generate revenue out of, instead of wading into GPL-esque territory that tends to go along with LISP.<p>It's also one of the main reasons I have been using Octave and Python/Anaconda.