Hacker News new | ask | show | jobs
by zorked 1666 days ago
Mathematica is really good. If it were Open Source it might have a chance at competing with Jupyter and Python. As it isn't, nobody is going to build businesses around it and the community will be limited.

If they are right, it may make Wolfram more money, but it certainly makes Mathematica less successful.

1 comments

I haven't done a ton with Mathematica, but my understanding is that it allows for more powerful and abstract programming than something like Jupyter. Am I wrong?

I would think that Wolfram isn't trying to compete in the data science space, but more in the more abstract academic space.

They are not really comparable. Jupyter is more like a repl where every cell is a seperate python script that nonetheless share the same interpreter instance and the binding enviroment. The reason it often draws comparisons to Mathematica is that this is the default mode of interaction with Mathematica (on a PC at least), the IDE opens into a text-editor-like interface and any valid mathematica expression can be entered into an input cell and eval'd seperately from the rest of the script, but it permanently mutates the global state of the running interpreter. This is so much the de facto default that a lot of people don't even know how to interact with the language otherwise.

Jupyter creator said (IIRC) that he was in fact inspired by Mathematica's interface, but it's not like Lisp, Smalltalk and APL weren't doing this at least a decade before.

Aside from this superficial similarity, Mathematica the language is a whole different... language. Imperative contructs are awkward to use and frowned upon, symbolic computation over expression trees is the default and very common, loops and with their exit conditons are expressed as either map-reduce style functions or recursive relations with multiple definitions. All code is literally just a tree of symbols that you can inspect and manipulate, you can enter "NonsenseFunction[1,2,3,4,5]+12" and the interpreter would just give it back to you unchanged, the execution model is simply implementing a rule-rewriting engine, if it can't find a rule to simplify an expression it simply returns the thing as is. This is very different from python or really any mainstream language, it's a fun mixture of Lisp and Prolog.

I used it more than a decade ago, as a grad student. It was magic with symbolic algebra. It was also a solid general purpose language, great for audio and graphics (although probably not realtime).

But the set of libraries for it will never compete with those of an open language.

There are open source alternatives. The one I'm somewhat involved in is Maxima which is one of the oldest open source projects that is still being developed.

wxMaxima is the most popular frontend for the software: http://wxmaxima-developers.github.io/wxmaxima/

I'm also taking the opportunity include a video that I made using to demonstrate my UI for it: https://peertube.functional.cafe/w/qnx1onPEx9LCtDP3wFqjWz

Maxima is a treasure!

And yes, I think it is lacking a better UI (wxMaxima works but needs more polish I think) and particularly more appealing documentation. Your video is very interesting!