124

82

I've seen questions before such as "What is the best open-source equivalent for Mathematica?", but that specific question (and that line of inquiry in general) cares more about the computer algebra system and less about the core language and its unique and powerful features.

My interest in Mathematica come from a slightly different angle--namely, I find a tremendous amount of value in the power and flexibility of the *language* that Mathematica implements (I think of it as a slightly less scary looking syntax for Lisp with some very novel additions such as the powerful pattern matching system).

**Are there any projects that have made a concerted effort to build a Mathematica-the-language work-alike instead of focusing on the Computer Algebra System?**

Mathics is the closest project I've found so far (since it does, in fact, try to stay faithful to Mathematica syntax where it can), but even it pitches itself as a computer algebra system. And it was written in Python, which isn't bad by itself, but it sets itself up to not be as fast as Mathematica for computationally intensive tasks.

It seems to me that Wolfram Research would actually benefit tremendously from having an even bigger programmer community around Mathematica as a language and developer platform, because more packages would be produced to solve more off-the-shelf programming problems (just like almost any other programming language).

An open (or at least freely available) implementation of the core programming language wouldn't even dilute their secret sauce which I would say primarily lies in Mathematica's base of mathematical rules and algorithms, in the scientific computing tools that they've bundled into one enormous and broad package, and into the insanely well-integrated notebook experience that they should have no trouble keeping ahead of any kind of open source project.

16"Nope" is perhaps too short an answer for such a long question. But nonetheless is true. – Dr. belisarius – 2012-04-19T04:29:36.690

3

It feels almost like flamebait on this site, but it's worth mentioning anyways, at the very least for future googlers: you may also want to look into Octave, the open-source equivalent to Matlab's language.

– BlueRaja - Danny Pflughoeft – 2012-04-19T10:00:00.46026@BlueRaja-DannyPflughoeft The question was asked specifically about Mathematica, which is sufficiently different from Matlab to make your comment of no relevance here, particularly given the context of the question. – Leonid Shifrin – 2012-04-19T11:01:54.080

8

@sblom, you may find this interesting. In the first few paragraphs Stephen talks about a more freely available pure language aspect of Mathematica.

– None – 2012-04-19T11:24:17.610OP / @user21, just wanted to add a permalink to that post (as it is, indeed, interesting): https://reddit.com/r/IAmA/comments/qisot/im_stephen_wolfram_mathematica_nks_wolframalpha/c3xz8by?context=1#thing_t1_c3xxgx3

– ELLIOTTCABLE – 2016-03-21T11:18:24.663Exactly what is meant by "Mathematica-the-language"? Just what the Documentation Center includes under "Core Language & Structure"? If so, that would exclude string manipulation and graphics, among other things. – murray – 2016-06-30T14:24:43.350

Why would you even want such a thing to exist? It would be like distributing a counterfit pharmaceutical, when the real one is available inexpensively available for experimentation. – George Wolfe – 2012-10-08T01:58:47.433

8

@GeorgeWolfe, I think it's more like a generic than a counterfeit. And inexpensive or not, the price tag even for the Home Edition (which I own) is high enough to disqualify Mathematica from participation in programming competitions like Google Code Jam. I really want to see a day where Mathematica has as rich of an ecosystem of shared packages as MATLAB has, and I believe that a free clone is very possibly part of the equation.

– sblom – 2012-10-09T03:56:44.477I see your point. – George Wolfe – 2012-10-10T03:05:00.933

3Pattern-matching, replacement rules, "conditional term rewriting," are the core features that set Mathematica apart (and 'above' IMO) from almost everything else on the planet (ok, there is Maude and maybe parts of Coq, but not much else). These features have nothing to do with syntax, with the libraries of solvers, with applications. Thankfully, they finally gave a name to the language itself ("Wolfram") so we can stop confusing the language with the applications. It's classic "form versus content," with Wolfram's being the form and Mathematica's being the content. – Reb.Cabin – 2018-09-20T12:48:05.580

1

this is my attempt to mimic Mathematica syntax with C++ https://gitlab.com/yoshiF7d/math

– Hayashi Yoshiaki – 2020-01-26T21:15:11.310