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.
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?
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.
That's why I mentioned truth tables. Being able to quickly perform symbolic simplifications is awesome. If nothing else, learn how to do that!
Can you say what some of those are?
I'm enjoying your comments on this.
A quick Googling will show you that Rich has popped his head into a bunch of conversations where both Clojure and Mathematica are mentioned. He's also mentioned it in a talk or two.
Of course, given that the early drafts were written by Wolfram himself, you'll have to ignore absurd statements like this one: "Long viewed as an important theoretical idea, functional programming finally became truly convenient and practical with the introduction of Mathematica's symbolic language." [2]
See also: Pure [3]
[1] http://reference.wolfram.com/mathematica/tutorial/CoreLangua...
[2] http://reference.wolfram.com/mathematica/guide/FunctionalPro...
He's mentioned it twice on his blog that I can find: today and on June 1, 2011. Unless I missed a bunch, you are being rather ridiculous.