
There Was a Time before Mathematica - nswanberg
http://blog.stephenwolfram.com/2013/06/there-was-a-time-before-mathematica/
======
IvyMike
Hey, it's time for me to tell another third-hand half-remembered unsourced
story, just because it's halfway relevant. How's that for a disclaimer?

Anyways, on to the story. I was an undergrad at UIUC in the early 90's, and
the development of Mathematica had created a deep rift in the mathematics
department.

There was resentment because there had been collaboration between those
working _for_ Mathematica, and other professors in the math department, who
were just working on "interesting problems" presented to them by the inner
circle guys.

Of course when Mathematica was released, and money and options were being
given to the inner circle guys, the outer circle guys had, let's say, hurt
feelings.

~~~
programnature
Half-remembered unsourced negative gossip is what great HN commentary is made
of these days?

------
pfedor
If you don't have a connection to the world of physicists you may not realize
how huge Mathematica is. I have a friend for whom it is the environment of
choice for pretty much everything. Like, when he needs to do some image
manipulation, he doesn't reach for ImageMagick, he does it in Mathematica. If
he needed to set up a web server he'd probably do it in Mathematica too.

People say they can't stand Wolfram's lack of humility. Just get over it for
your own benefit. People have flaws, that's life. If you get so enraged over
his style that you can't listen to what he says, then you won't hear what he
has to say which happens to be a lot of interesting things.

------
bitwize
I was kind of expecting a piece about how stone-knives-and-bearskins
mathematics was before The Wolfram single-handedly brought fire down from
Olympus.

This wasn't that far off, though, so full credit, Wolfy.

~~~
psychometry
I wonder whether he has ever written a blogpost that doesn't mention receiving
his PhD at 20. I find his self-aggrandizing intolerable.

~~~
snprbob86
Mathematica is absolutely incredible and everyone who calls themselves a
programmer should own a copy, learn how to use it, and internalize its
philosophy.

However, I too find his self-aggrandizing intolerable.

Sentences like "Looking back at its documentation, SMP was quite an impressive
system, especially given that I was only 20 years old when I started designing
it." Just make me dislike him. Was his age really necessary there? He already
mentioned his age a few paragraphs up in a sentence that was far less
objectionable.

~~~
davorak
> everyone who calls themselves a programmer should own a copy

I use mathematica regularly, but do not have quite as strong an opinion as
that.

Would you mind sharing your top three reasons or there about?

~~~
snprbob86
I wrote a little bit about this on HN before:
[https://news.ycombinator.com/item?id=4844502](https://news.ycombinator.com/item?id=4844502)

In short:

1) Term rewriting systems are a beautiful and powerful model of computation
that a lot of people know nothing about.

2) The "everything is data" philosophy is life changing. This same philosophy
can be seen in the Clojure community (there are more than a few Mathematica-
isms that Rich has admitted being influenced by). Mathematica goes further to
say that all data is expressions, which is really a subpoint of #1, but I
think that data is the more fundamental important idea than expressions. Even
though expressions have extremely wide applicability.

3) Having some mastery over the basics of Mathematica is like having a bunch
of secret programming super powers. One time, I came across an exceedingly
complex if/and/or/else clusterfuck and reduced it to a trivial truth table in
only a few minutes of fiddling with Mathematica. There are lots of cases where
experimenting in Mathematica was just a much faster way to understanding and
solving a problem prior to implementation.

~~~
davorak
Thanks for the response, I have not found it to well matched for all of my
tasks but it is definitely well set up for certain types of programming tasks,
has several high level abstractions and a diverse set well documented
libraries.

~~~
snprbob86
I haven never tried to write a script or algorithm or anything in Mathematica.
It's not useful for that (at least to me). I use it more to explore and to
understand problems.

That's why I mentioned truth tables. Being able to quickly perform symbolic
simplifications is awesome. If nothing else, learn how to do that!

------
mfonda
Very interesting read. I especially like the following quote:

 _I figured if I couldn’t explain something clearly in documentation, nobody
was ever going to understand it, and it probably wasn’t designed right. And
once something was in the documentation, we knew both what to implement, and
why we were doing it._

I think this a great practice to follow. I often find it very helpful to write
documentation before writing code. I find I end up with a better designed
system this way, and as an added bonus it has great documentation too.

------
nswanberg
Wolfram's list of language design mistakes in SMP is interesting, particularly
how he dropped SMP's symbolic indexing from Mathematica, but still kept echos
of the idea in function definitions:
[http://reference.wolfram.com/mathematica/tutorial/MakingDefi...](http://reference.wolfram.com/mathematica/tutorial/MakingDefinitionsForFunctions.html)

Also interesting is the little decryption challenge (turns out he stored his
copy of SMP in an encrypted form and can't find the key).

------
LowKarmaAccount
> A big early decision was what language SMP should be written in. Macsyma was
> written in LISP, and lots of people said LISP was the only possibility. But
> a young physics graduate student named Rob Pike convinced me that C was the
> “language of the future”, and the right choice. (Rob went on to do all sorts
> of things, like invent the Go language.) And so it was that early in 1980,
> the first lines of C code for SMP were written.

So Wolfram appears to be saying that C, the "language of the future", was much
better than that old Lispy stuff he had been using. But then he goes on to
admit that he spent lots of time reinventing features that are obvious in
Lisp:

>It got even weirder when one started dealing with multi-argument functions.
It was quite nice that one could define a matrix with m:{{a,b},{c,d}}, then
m[1] would be {a,b}, and either m[1,1] or m[1][1] would be a. But what if one
had a function with several arguments? Would f[x, y] be the same as f[x][y]?
Well, sometimes one wanted it that way, and sometimes not. So I had to come up
with a property (“attribute” in Mathematica)—that I called Tier—to say for
every function which way it should work. (Today more people might have heard
of “currying”, but in those days this kind of distinction was really obscure.)

Really obscure? To who? C programmers?

------
m0nastic
I know that people complain about Wolfram when his posts show up here (which I
understand, even if I've always found his bizarre combination of eccentricity
and stupendous ego endearing), I thought this was super interesting.

Surprisingly, I think he only mentions NKS once in this whole entry, and it
includes a nice shout-out to Rob Pike.

------
e3pi
I've always avoided Mathematica. I Use pari/GP, maxima, axiom, perl's Bignum.

Mathematica, macsyma, Symbolics, I've always felt monetized what should have
been(remained) open source, GNU(etc.) licensed. Thank you again Mr Stallman.

~~~
sliverstorm
Why should it have been open source? Is quality software not worth paying for?

If you are thinking something along the lines of the "purity" of mathematics,
and how mathematics "want to be free"- mathematics _is_ free, as evidenced by
your use of BigNum, or even pencil-and-paper. Mathematica is just one of the
many calculators, and people have happily paid money for calculators for many
years.

~~~
mixmastamyk
Fsf proponents are not concerned with price, rather with freedom.

~~~
tzs
There are many kinds of freedom.

If a proprietary tool lets me get my work done faster than a free tool would,
then using the free tool takes away some of one kind of freedom--namely the
freedom to spend my time doing things I want to do instead of things I have to
do to pay the bills.

------
nwhitehead
Another fun read is the listing of original developers of Mathematica in the
Addison-Wesley "Mathematica" book and what they worked on.

[http://omohundro.files.wordpress.com/2009/03/wolfram88_mathe...](http://omohundro.files.wordpress.com/2009/03/wolfram88_mathematica_developers.pdf)

~~~
rhodin
"The plot [on the front page] took about three minutes to produce on a Sun
3/260 computer."

Plot3D[Abs[Zeta[x + I y]] , {x, -2, 6}, {y, 2, 35}] takes 0.213483 on my
laptop :)

------
watershawl
I really liked this quote, "I was trying to find the elementary components of
computation...try to pack the largest capability into the smallest number of
primitives." It really captures his life's thesis.

He should be praised not only for his accomplishments, but his commitment and
grit. It's not easy to stick with something for so long like he has and
continue to improve it over time.

------
hudibras
The "Algebra will never be the same again" ad is awesome. It's like an
artist's conception of a mathematician. Or alternately, it looks like that
black-and-white freezeframe in every informercial right before they introduce
the product that solves the problem.

------
omra
Another very interesting part of the article is the call for the decryption of
the SMP source code:

[http://blog.stephenwolfram.com/2013/06/there-was-a-time-
befo...](http://blog.stephenwolfram.com/2013/06/there-was-a-time-before-
mathematica/#runSMP)

------
gcb0
<quote>"Even in my early designs, SMP was a big system. [...] just wanted to
go ahead and implement it. [...] and bought every book I could find on
computer science—the whole half shelf of them. And proceeded to read them all.

I was working at Caltech back then. And I invited everyone I could find [...]
put together a little “working group”"</quote>

How on earth does people find the time to do those things while "working"?
What do they mean by Work?

------
codemac
Is anyone else really impressed with his personal archive of documents or
scannings of them?

I've gotta get rid of my drobo FS and upgrade to a serious colo or something.

~~~
glhaynes
He's got a personal assistant that follows him around everywhere — and perhaps
more who don't. Must be nice!

