58 comments

[ 3.2 ms ] story [ 102 ms ] thread
Wow. This "history" misses a LOT of other major efforts, muMath (Rich and Stoutemyer), Derive (Rich and Stoutemyer), Maple (Geddes and Labahn), Axiom (Griesmer and Jenks), SageMath (Stein), etc.
If you have read anything about Wolfram, you'd be less surprised. Brilliant, but perhaps not so careful about related work. See http://shell.cas.usf.edu/~wclark/ANKOS_reviews.html for more ...
Yes, whilst I admire Wolfram's work, he combines hubris (e.g. Claiming to reinvent science[0]), with a tendency to ignore the work of others [1].

Hubris aside, he's not a conventional thinker, and I found his personal setup interesting [2].

[0] https://www.wolframscience.com/nks/

[1] https://en.wikipedia.org/wiki/A_New_Kind_of_Science#Original...

[2] https://writings.stephenwolfram.com/2019/02/seeking-the-prod...

I feel like he’s a decent guy with some kind of psychological disorder that makes him very unaware of the line between proper Western self-regard and very unbecoming arrogance.
He’s had tremendous success and impact through the work that his outlook on the world enabled. I can’t see how there’d be any incentive to update one’s self view in those circumstances.
> A New Kind of Review - by "a reader"

> I can only imagine how fortunate you must feel to be reading my review. This review is the product of my lifetime of experience in meeting important people and thinking deep thoughts. This is a new kind of review, and will no doubt influence the way you think about the world around you and the way you think of yourself.

derive.exe was like a super power in highschool.
Wolfram is an egoist of the highest order. Even Linus Torvalds had the good sense not go full ego and call his OS “Linus”.

PL designers have huge egos in general, often referring to themselves as benevolent dictators over their project. But most language authors name their language after a clever pun, a famous person in the field, or a loved one. Not Wolfram though, he named his language after himself — really takes it to a next level.

> Even Linus Torvalds had the good sense not go full ego and call his OS “Linus”.

Allegedly, Linus was going to call it "Freax", but a FUNET admin hated that name and forced the issue by naming the directory "linux".

Could you imagine? As if Linux doesn't have enough trouble finding mainstream support as it is, imagine if it were called Freax. My God nerds suck at marketing, and I mean that with so much love. I guess marketing types suck at writing operating systems, so it's unfair to expect the world from one guy.
If I manage to create a successful computing ecosystem, I plan to name myself after it. :)
I believe he truly sees the Wolfram language as an extension of himself, from the very beginning it was designed only based on his needs and desires. That others find it useful is just a happy accident.

Maybe it is just ego, or maybe it's something a bit more profound.

Tbf that’s the standard for many pl projects. It’s why so many anoint themselves as bdfl; they don’t want to lose control over the project and find themselves unable to execute their visions.

Many PLs start with one developer saying to themself “this tool suck, I could do it better.” What follows is an endeavor of so much breadth and depth it takes many years to execute on that vision, so pl designers become very attached to them. This is why there are a billion languages with only a single user: the designer.

I really don't see the difference with Linux on any level.

To be fair, wolfram is a pretty cool name in general. It sounds like a computing product already. I don't see how you can blame the guy for using that.

I'm not blaming him for anything. I guess you're taking being an egoist as a bad thing? It's needed for the role he's in. He just takes it to a next level, that's all. Like you said, he's got a cool name, why let that go to waste?
Also magma and pari/gp had, and still have, their place
Both are still at least a decade ahead of Mathematica at arithmetic geometry and group theory.
That’s a well-known pattern with this author, which is why I’m not going to bother reading this, despite having an interest in the technology.
Why should a memoir about Mathematica talk about other products?
Its about "a time before Mathematica" and it does talk about other products.
Wolfram is a blowhard with an ego too large for hyperspace. I remember attending a rambling lecture at the UIUC Beckman institute on his "new kind of science" topic with no interesting results and at the end of 65 minutes he said, "Are there any questions?" and everyone just stood up and began filing out of the room and Wolfram became irate, and began complaining that nobody had any questions - we had learned nothing at all.
Any of you guys mind sharing your experiences and use cases for Mathematica? I have yet to see someone using it in the wild.
My master's thesis involved figuring out an integration of the Biot Savart equation for hexagonal finite elements.

Without Mathematica it would have been impossible.

(comment deleted)
In my experience, Mathematica is probably the best software available for symbolic computations (integrals, derivatives, equation solving,...). The numerical capabilities are alright, but specialized libraries in compiled languages usually perform a lot better. Plotting is absolutely terrible compared to matplotlib.
Compared to Matplotlib? Is that a good benchmark for plotting?
R and Python probably have the best plotting these days, so yes.
I solely used it in college, but heavily. I'm content with Python now. I never got into making my Mathematica notebooks super presentable, but I think Jupyter notebooks also fill that need really well now. Noteworthy projects:

* Visualizing linkages in a car steering system, and then brute-force iterating on lengths of components to reduce bump-steer

* Illustrating nuclear reactor core layouts (fuel rods, control rods) using "plotted" hexagons. I think I subsequently animated this to illustrate... something (Bummer I don't use my nuclear engineering learnings anymore).

But in general, it was just a great tool at the time for engineering-oriented calculations and graphs. Matlab's syntax never appealed to me. Oh, and my absolute favorite thing was the interactive documentation that Mathematica had. Made trying new things super easy; search the docs, modify the snippet, and now you understand it!

(In addition to what the other comments point out…)

It’s also an extremely lispy language (fundamentally based on term rewriting as a computational model) where it’s very intuitive to do higher order functions and structural manipulations in the spirit of macros. In my experience, makes it an absolute cinch for tackling complicated one off wrangling tasks.

It’s a unique language that is absolutely unparalleled in the directions it’s good at. I’ve had friends (in grad school) tell me that they don’t mind the potential lifelong dependence because paying a few hundred dollars annually for Mathematica is so worth the capability amplification they get.

I’ll never forget the first time I encountered Mathematica. It was 30 years ago in a NeXT lab in the basement of a building at Ohio State University. I had spent the previous two years tinkering with a junky 486 on a 14” monitor. The NeXT platform alone seemed almost magical and the things i could do with Mathematica just blew my young mind. I would spend hours in there just messing around with it.

They also had laser printers in that lab, another technology that I just couldn’t wrap my head around. I had entered school thinking I was going to become a mechanical engineer and design cars and motorcycles. I think that lab was instrumental in me pivoting to a career working with computers.

You don't say, Steve.
Later down the page, Wolfram issues a challenge: "It’s been years now, and I’d really like to see SMP run again. So here’s a challenge. This is the source for a C program encrypted like the SMP source code..."

Just wanted to call this out in case anyone wanted to try decrypting it :).

Mathematica is one of the greatest software applications of all time but hearing Wolfram talk about it will make you throw up in your mouth
It's a fascinating letter, but Feynman's prediction didn't come true. Wolfram did succeed in running a company.
I would argue the opposite, that it did in fact come true, since Wolfram's attempts at research while running a company (A New Kind of Science and Wolfram Physics) are all unsuccessful.
I think Wolfram’s impact has been in a mind multiplier for Mathematica customers. It’s a legacy to be proud of. The software makes my brain more capable.
I remember using Mathematica in early 2000's, alongside maple, with warez copies found on kazaa, and how hard it was to reconcile programming languages I was familiar with these technologies, and how I could never create a serious project with them.

Then sage came out, and everything changed.

Mathematica is cool but I haven’t found much of a space for it in my career. As a physics student I think I used it a total of one time to help solve a difficult integration that I couldn’t find in Gradshteyn and Ryzhik. In my professional life, I’ve tended to solve things numerically first with Matlab, then with Python and Numpy. Mathematica is still a cool tool.
+1. It's perhaps a good tool for pure mathematicians or theoretical physicists, but applied problems are usually to messy to nicely integrate/differentiate and you quickly have to resort to numeric methods or, more recently, to automatic differentiation.

I for one bought the licence and was later very disappointed by how useless the tool was for the domain I intented to use it for (computer vision/3d reconstruction/SLAM).

I've been using it for 20 years and really like the ability to quickly analyze data. Mostly, I'm just used to the style and with a bit more practice could probably do these things in Python. I've occasionally also used it for difficult integrals. I really do like their documentation compared to what is most often available for Python packages.
The problem with using it in research is that it’s a black box. This is not good for transparency or reproducibility. Science is moving toward open-source tools, open data, etc. for good reason.
It’s still significantly better in practice than, say, Python where you need to resort to containers to have any hope of another person being able to run your data science stack successfully.

Mathematica has this perception of being a black box, but much of its algorithms actually ship as plain text libraries. Its design also makes it trivial to cross-check results calculated with different algorithms.

Their algorithms are also designed to be robust to numerical errors, and are professionally verified against various sources such as textbooks and research papers.

Worse is better: people prefer to duct-tape random maths libraries together with Python from the Internet not because it’s better but because they feel more involved in the process.

Even if Wolfram open-sourced Mathematica tomorrow, nothing would change.

> It’s still significantly better in practice than, say, Python where you need to resort to containers

Just because it’s open doesn‘t mean it‘s easy.

> Mathematica has this perception of being a black box, but much of its algorithms actually ship as plain text libraries.

Still a black box. Unless everything is open—open language, open interpreter, open compiler—then it’s not open.

> Worse is better

Better is better. Avoiding black boxes is better for science.

> Even if Wolfram open-sourced Mathematica tomorrow, nothing would change.

I think this would be huge, and a lot would change. Many people would use it who avoid it now. It’s really innovative technology.

Here’s one example of what I’m thinking about:

Suppose I read your paper and you have a nice plot of what you say is a numerical solution to an ODE, using algorithm ABC as implemented in v.XXX of Mathematica, Rich PI Edition. I want to get solutions for some different parameters, so I start by checking that I can reproduce yours. I code the ABC algorithm up (in Julia, of course (or actually I don’t have to: look, it‘s already in DifferentialEquations.jl. Damn that Rackauckas is prolific.)). Anyway, my result is different from yours. What do I do now? Where are the details that might explain the difference? Have we implemented ABC in exactly the same way? You can‘t tell me.

> Still a black box. Unless everything is open—open language, open interpreter, open compiler—then it’s not open.

Then literally nothing is open because no one is doing any significant computing on a fully-open hardware stack.

Probably true, but is it relevant? I think the crucial question would be: is there any reasonable chance that the hidden microcode, or whatever is closed at the hardware level, affects the results of a numerical calculation? Because the details of how a compiler translates source to machine code can affect those results.
First of all, differential equations can generally be verified to be valid solutions by evaluating the solution functions. So you don't have to cross-validate to check the output.

Mathematica does this for you. If it can't, it'll complain that the solutions are incomplete or are likely invalid due to numerical error somewhere.

Chaos theory is highly relevant here -- there is no way to directly compare two numerical solutions to many ODEs if anything is different. Unless the code is literally the same down to the machine instruction levels, all bets are off. Even floating point rounding error will result in sufficient noise to cause divergence.

Mathematica -- like most of mathematics -- is not designed to operate in a vacuum, outputting solutions that are simply published as-is. Everything you do with it should be rigorously proven and/or verified in some way to make sure that it makes sense. This ought to be the same with any tool. You don't necessarily need to know all of its internal details in order to do this. Like I said, run the equations forwards, substitute solutions, use symbol and numerical methods, graph the results and make sure they make sense, etc...

I used it to cheat on my algebra homework in high school. Of course it left me wholly unprepared for the actual test.

There’s a lot of talk about the need to introduce programming in schools. Why not teach it as a way to automate tedious schoolwork? Implementing a basic computer algebra system should do just as good of a job teaching the principles of algebra as anything.

A bit like Knuth unhappy with existing mathematics typesetting programs. So he spent a decade writing TeX.
I remember using Maple for some calculus labs, but I ultimately ended up using Octave for a vast majority of all my later math needs.

And now I’m a software engineer and I never touch non-discrete math.