There was a time before Mathematica (2013)
writings.stephenwolfram.com
writings.stephenwolfram.com
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 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.
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.
Allegedly, Linus was going to call it "Freax", but a FUNET admin hated that name and forced the issue by naming the directory "linux".
Maybe it is just ego, or maybe it's something a bit more profound.
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.
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.
[1] https://en.wikipedia.org/wiki/Derive_%28computer_algebra_sys...
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.
There Was a Time before Mathematica (2013) - https://news.ycombinator.com/item?id=19224383 - Feb 2019 (56 comments)
There Was a Time Before Mathematica … - https://news.ycombinator.com/item?id=14852454 - July 2017 (1 comment)
The time before Mathematica (2013) - https://news.ycombinator.com/item?id=10142496 - Aug 2015 (10 comments)
There Was a Time before Mathematica - https://news.ycombinator.com/item?id=5834731 - June 2013 (39 comments)
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).
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.
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.
Then literally nothing is open because no one is doing any significant computing on a fully-open hardware stack.
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...
Then sage came out, and everything changed.
Without Mathematica it would have been impossible.
* 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!
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.
https://community.wolfram.com/groups?p_auth=F0xHCTqs&p_p_id=...
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.
Just wanted to call this out in case anyone wanted to try decrypting it :).
And now I’m a software engineer and I never touch non-discrete math.
http://genius.cat-v.org/richard-feynman/writtings/letters/wo...