Is Mathematica an Implementation of the Wolfram Language?

The Wolfram Language is what we all know as Mathematica, but rebranded to help wider adoption to people, particularly for people who don't think of themselves as "math" people. As a Mathematica programmer, emphasis on the "programmer", I see this as a good thing.


Clarifications about the Raspberry Pi version

tl;dr The programs started by the "Mathematica" and "Wolfram" icons in Raspbian have the same capabilities and the same back end. Only the user interface differs.


As of 2014 June, the Raspbian operating system (of the Raspberry Pi computer) comes with Mathematica pre-installed. There are two related icons on the desktop, "Mathematica" and "Wolfram".

enter image description here

To understand the difference between these two, one needs to understand the architecture of Mathematica first. Mathematica uses two processes:

  • One that displays the GUI and the notebook interface. This has traditionally been known as the Mathematica Front End.

  • One that does the actual computations. This used to be known as the Mathematica Kernel.

These two processes are independent but they rely on each other:

The Front End can show notebook documents without the kernel, but all computations must be sent to a running kernel for evaluation.

The Kernel can be run alone and used in command line mode. However, certain functions, such as exporting graphics, do require the Front End. When exporting graphics, the Front End is launched in the background without displaying anything on screen, and the graphics object is sent to it for rendering. (This is why exporting graphics requires a running X server--use Xvfb on headless machines.)

Somewhat confusingly, in Raspbian the icon that starts the Front End is called "Mathematica" and the icon that starts the Kernel in command line mode is called "Wolfram", suggesting that they will start different systems. Other then using a notebook interface or a traditional command line for input, these two are identical. The have exactly the same computational capabilities.

This information is valid as of June 2014.


I think that giving the language we use in Mathematica a name ("W", or whatever), and establishing it as separate from the Mathematica Interface is a step in the right direction. Mathematica is "Visual Wolfram" (arg) or something like that - an interactive interface for TWL. It has a REPL, renders graphics, formats tables, grids, etc.. That's not TWL - that's an environment it runs in.

The front end displays plots and graphics from the kernel, but something else could do the same thing. If you look inside the expression returned from evaluating Plot[...], the stuff you see isn't "The Wolfram Language" - it's data from the kernel, to be displayed. Splitting out TWL paves the way for other platforms (like in Rasberry Pi), and perhaps someday something like a compiler.