I am trying to figure out what the announcement of the Wolfram Language means for Mathematica.
Is Mathematica an implementation of the Wolfram Language, or is it something else?
Mathematica Stack Exchange is a question and answer site for users of Wolfram Mathematica. It only takes a minute to sign up.Sign up to join this community
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".
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.
The Wolfram language is more an informal abstraction than an implementation of Mathematica.
A formal or normative definition does not exist yet after many years but three important events have occurred.
Stephen Wolfram's book "An elementary introduction to the Wolfram language" introduces the language as a more expressive extension of natural language.
We will know that Mathematica is an implementation of the Wolfram language when we see another implementation. Maybe Mathics?
One important part of Mathematica, the front end (user interface), is neatly independent of the Wolfram language and seems to be actually replaceable by the Jupyter notebook.
By analogy with Python for example, I suggest that the Wolfram language be everything that can be interpreted in the command line. e. g.
wolfram on the Raspberry pi or
mathematica on other machines.
That includes some functions used almost only by the front end like ToBoxes.
So Mathematica would be the most popular interface or working environment for the Wolfram language. Others are the Unix terminal, Wolfram Alpha, WebMathematica, the Wolfram Workbench and maybe the Jupyter notebook.
Finally I propose this answer : NO Mathematica is not an implementation of the Wolfram language but it is a package of a working environment for the Wolfram language on top of the Wolfram language itself.
There are still problems of definition :
sometimes the Wolfram language grows by downloading over the internet from Wolfram Research. Versioning is not very meaningful. Are datasets included? Are numerical libraries included? Which ones?
the definition is not universal: you can't reproduce the Wolfram language in your own lab, independently of a company or a device, that is just like the definition of physical units before the metric system,
Dynamic does not work in the command line, it is not part of the Wolfram language. (Indeed it runs in the front end.) Same for Manipulate, CreateDocument.