Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

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.

share|improve this question
6  
"Nope" is perhaps too short an answer for such a long question. But nonetheless is true. –  belisarius Apr 19 '12 at 4:29
1  
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 Apr 19 '12 at 10:00
13  
@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 Apr 19 '12 at 11:01
6  
@sblom, you may find this interesting. In the first few paragraphs Stephen talks about a more freely available pure language aspect of Mathematica. –  user21 Apr 19 '12 at 11:24
4  
@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 Oct 9 '12 at 3:56

2 Answers 2

up vote 45 down vote accepted

I've been collecting these links for a while, so this question is a good excuse for a link dump. I'm not sure which project is the "best", but I think that mathics and symja are two of the more active and developed projects.

Lisp:
MockMMA is probably the first implementation of the Mathematica language. It was written by Richard Fateman who had a bit of a scuffle with Wolfram Research over the code.

Python:
Mathics (which you mentioned in the question) is primarily a syntax layer ontop of sympy and sage, not an independent implementation of the Mathematica language.
Pythonica is an abandoned python implementation of Mathematica.

Java:
symja is a pure Java library for symbolic mathematics that uses Mathematica notation.
omath is an project that is still under development that will have a Mathematica like syntax, but does not aim to blindly copy Mathematica.


The omath page also has some interesting links to papers describing some of the Mathematica language's algorithms:
Matching in flat theories by Temur Kutsia. A detailed description of Mathematica's flat pattern matching. (But quite technical!) (original link)

Mathematica as a Rewrite Language by Bruno Buchberger.

On the implementation of a rule-based programming system and some of its applications by Mircea Marin and Temur Kutsia. These people obviously understand Mathematica's pattern matching enumeration system backwards.

Discussions about whether computer languages can be copyrighted, 1, 2, 3.

share|improve this answer
    
Fixed the broken links - the RISC site is really handy for references! Some good packages (some of which I've played with) and notes are also on that site. –  Simon Apr 19 '12 at 6:18
3  
you might be interested in Roman Maeder's papers on AlgBench. –  user21 Apr 19 '12 at 11:28

Yes.

According to Mathematica's creator, Stephen Wolfram, Mathematica is just an implementation of a language that as of 2013 has been named Wolfram

Two other implementations have been developed by a Kernel Developer at Wolfram Research (poeschko.com).

One is called Mathador, which is implemented in C++ and is no longer maintained, but the source may be of interest to you.

The other is called Mathics and is currently (as of 2013) being maintained. It is implemented in Python, uses the SymPy package to perform symbolic computations, and has a web browser interface. You can check it out online at mathics.net.

share|improve this answer
    
hi, just to make sure I understand, are you saying that the Wolfram Language is/will be an "open-source" implementation of language Mathematica? –  Nasser Nov 10 '13 at 0:06
    
@Nasser Switch "Wolfram language" and "Mathematica". –  Sektor Nov 10 '13 at 0:33
    
I am actually looking forward to seeing the Wolfram LRM (Language reference manual), which I assume will be published at some point in the future now that there is an official language called Wolfram. –  Nasser Nov 10 '13 at 1:27

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.