77
$\begingroup$

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?

$\endgroup$
26
  • 33
    $\begingroup$ Oh, dear. He really did name the language after himself. He proposed it in a previous blog entry but there were plenty of names to use instead of that. $\endgroup$
    – Peltio
    Nov 21, 2013 at 19:02
  • 60
    $\begingroup$ @Peltio It's A New Kind of Name :D $\endgroup$
    – rm -rf
    Nov 21, 2013 at 19:03
  • 23
    $\begingroup$ @rm-rf You won an un-invitation for the next W-Conference $\endgroup$ Nov 21, 2013 at 19:07
  • 21
    $\begingroup$ ... negative in particular about the new cloud features) is still M, and I'll always refer to it as M. Internally the employees were instructed about half a year ago to only refer to it as the "Wolfram Language" henceforth, but for me, until I die, it will always be "Mathematica" for me. Has been since 93. I see it as an ill-conceived attempt to rename M with something that bears Stephen's name. Already since M5 it has always been "Wolfram Mathematica" (see the marketing materials, for example), before M5 it was always simply "Mathematica". $\endgroup$ Nov 21, 2013 at 19:44
  • 22
    $\begingroup$ Basically, this question is off topic here, because this site is about Mathematica and not about some weird "new and different kind of language" which no ones has seen so far! ;-) $\endgroup$
    – halirutan
    Nov 21, 2013 at 22:51

9 Answers 9

41
$\begingroup$

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.

$\endgroup$
7
  • 3
    $\begingroup$ I think the "Wolfram System" is the term now used to describe what we currently think of as Mathematica. The term "Wolfram Language" is the language in which you write code in the "Wolfram System", or what we currently call (loosely) the Mathematica language, rather than the whole shebang - FrontEnd, Kernel, etc.. Still, that's just me guessing - I know nothing. :) $\endgroup$
    – cormullion
    Nov 26, 2013 at 20:18
  • 2
    $\begingroup$ Is it correct to say that on the Raspberry Pi "Wolfram Language" is a command line interface (just the kernel) and "Mathematica" is Kernel + Front End? This is my impression, but I don't have a Pi at the moment, so I can't try! $\endgroup$
    – Szabolcs
    Nov 26, 2013 at 20:22
  • 8
    $\begingroup$ @cormullion They probably considered WolframFrontEnd and WolframBackEnd for the FE & kernel, but were wise enough to see why that might be a bad idea... :D Oh, all the missed opportunities. $\endgroup$
    – rm -rf
    Nov 26, 2013 at 20:27
  • 5
    $\begingroup$ I see it as a backstep. The name "Mathematica" is absolutely great for it. $\endgroup$ Nov 27, 2013 at 0:53
  • 1
    $\begingroup$ The answer does not seem to be quite accurate. "The Wolfram Language" is not a new name for Mathematica. Rather, The Wolfram Language is a language that is implemented in the product Mathematica. But it is also implemented in other Wolfram Research products. $\endgroup$
    – murray
    Aug 22, 2014 at 20:01
17
$\begingroup$

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.

$\endgroup$
1
  • $\begingroup$ This answer was prompted by this question. $\endgroup$
    – Szabolcs
    Jun 11, 2014 at 22:31
9
$\begingroup$

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.

$\endgroup$
3
  • 8
    $\begingroup$ What the heck is a TWL? $\endgroup$ Dec 11, 2013 at 13:26
  • 5
    $\begingroup$ If you're not kidding, The Wolfram Language $\endgroup$ Dec 13, 2013 at 6:06
  • $\begingroup$ No, I wasn't kidding, I could not figure out the "The" and thought it is something more general. Thanks for the clarification! $\endgroup$ Dec 13, 2013 at 7:43
4
$\begingroup$

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.

$\endgroup$
2
$\begingroup$

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.

$\endgroup$
2
  • $\begingroup$ Was this not intended as an edit of your other answer? $\endgroup$ Apr 17, 2020 at 15:17
  • $\begingroup$ Yes but the old answer might be useful too. I leave it up to you $\endgroup$ Apr 17, 2020 at 15:22
2
$\begingroup$

Your question is "Is Mathematica an Implementation of the Wolfram Language?".

So is deals about Mathematica, Implementation and Wolfram Language.

The first fact is that the documentation of Mathematica starts with the core language and structure section. This indicates that Mathematica contains more than the Wolfram language. It offers additional structures that offer comfort and access to the core of the Wolfram Language. This core of the Wolfram Language structures again the Wolfram Language.

So there are several products offered by Wolfram Language indicating that there sets belonging to the Wolfram Language with one single Wolfram Language core and different internal and external structures making the Wolfram Language diverse and versatile.

Now we have some idea about what Mathematica is which is fairly abstract.

Programming language gives a nice and sorrowful definition of what a programming language is. And indeed it is named in the section Proprietary languages. But that is not the greatest effort for the definition of programming languages. Have a look at Fifth-generation programming language. And from this, You got further to Fourth-generation programming language. This page mentions again Wolfram Language.

Wolfram language is classified as fourth-generation language and as Data manipulation, analysis, and reporting language. So the central data type is the list as a representation of tables. This does not value the versatility of the Wolfram language as a high-end mathematical tool package.

So Wolfram lnaDomain-specific language might be suggested by the Rapsberry Pi port it lacks by high effort the gross abstraction to performance optimization on various machines. The new paradigm by Stephen Wolfram of higher parallel processing is targeted to this field of classification. So the Wolfram language depends strongly on the port ins use.

Wolfram Language lists the prioritized paradigms:

Multi-paradigm: term-rewriting, functional, procedural, array

from a different source than Stephan Wolfram.

He usually characterizes Wolfram language by multicomputation a fourth paradigm for theoretical science.

paradigms of Wolfram language.

This different conceptualization makes it so hard to characterize the Wolfram language as a matter of abstraction. This is on the other hand an answer to the realization of Moore's limit on the CPU integrations lower limit by the structuring by light on silicon-based CPUs. Parallelization is now a new foundational criterion to advance.

And port and implementation are closely related and parallelization is close to implementation traditionally. Wolfram language states that Wolfram Inc. officially names Mathematica as the implementation of the Wolfram Language and the therein offered online services. That extends Wolfram language with the decorators of the input line like the double equal, control+equal, and so on inputs.

So the Wolfram language is a knowlegde based collection of recipes and encyclopedic content as well.

More formally Implementation gives ideas about what should have been in the answer. This again relates to multi-paradigm programming languages. So symbolic programming is extended to knowlegde-based programming or better science rejected the concept of symbolic programming and replaced it with knowledge-based programming.

So taking the definition of implementation seriously each built-in has an interface implemented. Making the port important and the interface to the interfaces so the well-known input-output sequential.

So Wolfram language and the Mathematica software are not so well implemented because there are many of the interfaces of the functions and features hidden to the user requiring very often different concepts to well-known for example mathematical concepts. The interfaces are not very well open and documented as this very community often confirms.

From this conceptual clearance stems the fact that Wolfram language is not an implementation of Mathematica and vice versa. Each has its own corpus of interfaces incorporating the implementation. Wolfram language is neither a subset nor a part of Mathematica. Moreover, they are caused by the no doubling paradigm of both in a corresponding, cohesive or coherent relation. They are simply based on the paradigms put together in the Mathematica package because it might be of interest and importance to the customers.

The user may use each in a single input that is all. They can be operated together and give a visual, audial and performative interplay. The can too be viewed as a consequence of object orientation, and that the kernels ar separated from the GUIs, for example, notebooks or command line, and from the packages.

Do not mix up Wolfram language with Mathematica and vice versa. Wolfram language comes with Mathematica in a bundle as well as with the other Wolfram products. Wolfram Alpha does not locally have the Wolfram language as well as the Wolfram cloud. The interface get local to the user in part.

This is a logical from Implementation. So Mathematica contains an implement of the Wolfram language. There is a set of interface to operate the Wolfram language in with Mathematica including GUI-based applications.

Language Overview is an overview to the knowledge-based Wolfram language.

"The Wolfram Language is a highly developed knowledge-based language that unifies a broad range of programming paradigms and uses its unique concept of symbolic programming to add a new level of flexibility to the very concept of programming."

"Implementation is the realization of an application, or execution of a plan, idea, model, design, specification, standard, algorithm, or policy."

So where are the limits? As the progress of Mathematica shows the makers of Mathematica are not satisfied themselves. Look always when a new version appears at Stephen Wolfram notes on it, and at the New Features pages.

A very interesting glance in the depth of the question gives ThreadEqual. Many use Mathematica as it is. Some enhance the seemingly trivial features further. This package does "Make listable functions thread over equations as they do over lists. Allows for easy manipulation of equations." This is nowhere else documented. It can be done and changes the input-output-interface and implementation. Implementation is something strongly for making possibilities cognitive and this is rather well-known and most often used but by most never changed or adapted to personal needs.

This enhances or allows to enhance comprehension of the ongoing calculation in sequences of calculations. As already mentioned Mathematica offers the rewrite paradigm fully-fledged. Look at does-mathematica-have-a-built-in-tool-that-allows-one-to-operate-on-both-sides-o f an equation.

I described a situated cognition situation that is an implementation in detail. Wolfram language is part of the Mathematica software package. It can be run on the included kernel or parallelized kernels. The kernel is the port. The Wolfram language is the multi-paradigmen domain specific programming language in the domain of knowledge based programming. It is part of the 4GL programming language concept and a 4GL programming language.

The links if given offer a deeper structured insight into the details beyond the usual Wolfram Inc. rhetorics. Mathematica is placed is several Programming_domains.

The step Program starts with more reconstruction of what is constructed for the users of Mathematica. I pose that the question is not targeted towards Mathematical_optimization even in the meaning of mathematical programming as is the focus of the community.

Mathematica started with the special features of being able to deal with enormous big and small numbers beyond the usual typing systems for integers, reals, etc that are part of the port. And later integrated dimensions more deeply. But only both together gain an advantage for technical computations. That is rather typical for the development under Stephen Wolfram. Similar to the new 13.1 built-in SameTest.

But SameTest is a really fundamental problem in all programming languages. Even modern operating systems need a hard differentiating set of features and then even more guidance to distinguish. Explorative distinguishing is nearly impossible have a look an AI/ML recognition software. They most often need to be taught or taught-in.

There are depending on the standpoint in science and the personal attitude to science as a whole different weightings possible. Not at least Stephen Wolfram represents this differently. I think that my example and the offered theory shed some light on the question as I understand it. Mind this and all information here in my answer are only informal. So the question is Informal logic. The notebook interface of Mathematica is an Editor_(disambiguation), and the legend holds that this is the patent Stephen Wolfram holds despite he is famous for New kind of science. That is some variant of WYSIWYG starting with textual-like input (mathematical input). For most editors of that kind the input formatting is required to be hidden. In the Mathematica notebook interface this mainstream is broken and the formatted input is important and displayed.

Many remember Mathematica as one of the most prominent computer_algebra_systems. From this term system Wolfram Inc. draws its interpretation of "language and system". With this another standpoint confirmation to me is presented. The introduction of this is based on the new multicomputation-a-fourth-paradigm-for-theoretical-science added idea of

"In the full arc of scientific history, the computational paradigm is very new. But in the past couple of decades, it’s seen rapid and dramatic success—and by now it’s significantly overtaken the mathematical paradigm as the most common source for new models of things. Despite this, however, fundamental physics always seemed to resist its advance."

The kernel and the language stand out from the Literate programming related paradigms. They, therefore, deserved the separation and the promotion on the shopping shelves to gain more visibility. They are no longer platform-agnostic as the Literate programming are.

As shown above by example the very basic interfaces that are part of the implementation are still not much in general focus. There can be expected more effort by Wolfram Inc. on getting it there.

This how can one find undocumented options or option values in mathematica shows up Wolfram language based retrieval of the missing rest of the implementation of the interfaces in the given sets of functions, features, structures, datasets etc. that should be with Wolfram language to name Mathematica an implementation over all of the Wolfram language. This is very construction text that is necesssary because there is much more that whats is documented as interface in the Mathematica product for example in the documentation.

This google SERPs given some idea of what should be as an expectation: standard+for+interface+of+a+programming+language&t=bravened&ia=web. Main hit for me is Interface description language IDL.

Many are happy with the distinction between intepreted language and compiled language. For Mathematica that is not important. It can do both. See Mathematica code execution speed testing. The target is usually for this user group faster operations. For speed Mathematica includes since generation a package set for the major hardware near programming languages C, C++, Fortran, Python etc. This is a rather long and covering list. This in not part of the Wolfram language definitions. Wolfram language has to be independent to be named as programming language.

Common is the multiparadigmen paradigm. Wolfram language and Mathematica have only one of the most desired paradigm not. That is visual programming. As I mentioned above the Visual programming language is part of the package Mathematica and Wolfram language but only partly. Wolfram Inc. has a simulation package called System Modeler.

The is an upgrade available called Mathematica Enterprise Edition that includes even more of the Wolfram language. For the Jupyter plugin they talk about Wolfram Language For Jupyter. So with this nomenclature Wolfram Engine, i.e., a Wolfram Desktop or Mathematica installation is needed for the Wolfram Language For Jupyter.

The Wolfram language for jupyter is action:

screen of Wolfram language for jupyter

$\endgroup$
1
$\begingroup$

Maybe the first A in this Q&A https://www.wolfram.com/language/faq/ is a good answer to this topic.

Hope it helps!

$\endgroup$
4
  • $\begingroup$ While this link may answer the question, it is better to include the essential parts of the answer here and provide the link for reference. Link-only answers can become invalid if the linked page changes. - From Review $\endgroup$
    – bbgodfrey
    Oct 13, 2021 at 17:18
  • $\begingroup$ 1) This link could have been provided as a comment. 2) The link is relevant. $\endgroup$
    – Syed
    Oct 13, 2021 at 18:34
  • $\begingroup$ Following comments received, I paste the content of the link between quotes "How is it different from Mathematica? In a first approximation, the Wolfram Language = Mathematica + Wolfram|Alpha + Cloud + more. It's compatible with Mathematica, but it's a significant evolution, including knowledge, deployment and many new ideas." $\endgroup$
    – RobertCode
    Oct 14, 2021 at 10:01
  • $\begingroup$ I am really confused now. For me the Wolfram language should be a programming language. According to the link, the Wolfram language seems to be a programming language plus all its interfaces. I would not call this a language but a working environment. Another definition adding to my confusion: "The Wolfram Engine is the software system that powers Wolfram products and services, and implements the Wolfram Language and its interfaces and connections, across an unprecedentedly broad range of computational environments." $\endgroup$ Jan 17, 2022 at 18:32
1
$\begingroup$

SW said something interesting in yesterday's keynote at WTC21.

He said Wolfram One and Mathematica are about to be identical products. A "restarting point". From there, Mathematica will evolve in a certain direction in the mathematical paradigm, and Wolfram One will evolve in a different direction for the computational paradigm. This "progressive divergence" should result into two distinct, if not very different pieces of software.

$\endgroup$
5
  • $\begingroup$ did you hear by any chance any mention in the conference as when V 13 will be released? $\endgroup$
    – Nasser
    Oct 13, 2021 at 20:07
  • 2
    $\begingroup$ He said in about a month. I also noted what SW said about MMA and Wolfram Desktop evolving in different directions and I am not sure what to think about it. $\endgroup$
    – Philipp
    Oct 13, 2021 at 20:14
  • 2
    $\begingroup$ @Nasser, following their design meetings, it was said a week ago that the "code freeze" was about to happen soon, so I guess V13 is just around the corner :-) $\endgroup$
    – Domen
    Oct 13, 2021 at 20:31
  • $\begingroup$ The integration between the mathematical and computational appears to be a strength of Mathematica / Wolfram Language. This divergence based on mathematical vs computational doesn't sound to me like a good idea at all. $\endgroup$
    – Rob F
    Oct 13, 2021 at 23:17
  • $\begingroup$ Regarding the upcoming divergence between Wolfram Desktop and Mathematica...1) what fraction of WL users have a Wolfram Desktop license instead of Mathematica? I would guess less than 1-2%, though I could easily be wrong. 2) Many have long complained about the difficulty in understanding the difference between the two products. This move could change that, although at the end of the day I think it's more of a justification for renaming M to WL, for the purpose of attracting new subscribers. $\endgroup$
    – kits
    Oct 14, 2021 at 2:38
1
$\begingroup$

I add an answer because I need more space.

Consider for example Wolfram for Software Developers and more particularly the link Wolfram language for Jupyter.

The Wolfram language being passed to Jupyter is inconsistent with

In a first approximation, the Wolfram Language = Mathematica + Wolfram|Alpha + Cloud + more. It's compatible with Mathematica, but it's a significant evolution, including knowledge, deployment and many new ideas.

from Wolfram language Q&A.

Obviously, Mathematica or Wolfram Alpha is not passed to Jupyter!

For me, the first approximation is not good at all.

More accurate is Launching Today: Free Wolfram Engine for Developers by Stephen Wolfram:

The Wolfram Engine is the heart of all our products. It’s what implements the Wolfram Language,

Many people know the Wolfram Language (often in the form of Mathematica) as a powerful system for interactive computing—and for doing R&D, education, data science and “computational X” for many X. But increasingly it’s also being used “behind the scenes” as a key component in building production software systems. And what the Free Wolfram Engine for Developers now does is to package it so it’s convenient to insert into a whole range of software engineering environments and projects.

I understand this as the Wolfram engine being the actual interpreter or realization of the Wolfram language, so it is practically possible to confuse them, as long as only one engine exists.

Mathematica is the engine plus the notebook interface. (Except Mathematica version 2 for Unix, which had no notebook interface.)

The Wolfram language is part of Mathematica but Mathematica is not part of the Wolfram language.

Paraphrasing the Wolfram language Q&A, in a second approximation, the Wolfram Language is the intersection (not the union) of Mathematica, Wolfram|Alpha, Cloud + more.

$\endgroup$
2
  • $\begingroup$ Thanks for the extra information. But I am confused about "The Wolfram language is part of Mathematica but Mathematica is not part of the Wolfram language.". I have though WL is the name for the code we use when inside Mathematica. So how could Mathematica not be part of WL? Is WL meant to be something other than the actual code we use? Would this not make SameQ[Mathematica,WL] to be True ? Btw, I also think giving a name to the Language is a good thing. It makes it easier to talk about it. $\endgroup$
    – Nasser
    Jan 17, 2022 at 20:54
  • $\begingroup$ The proof that Mathematica is not part of the WL is that you can have the WL without Mathematica, for example in Jupyter or in the plain Wolfram engine or wolframscript. You can even have it for free (no money). I guess this is not clear for everybody but it seems to be an important aspect of WR strategy. Yes "WL is the name for the code we use when inside Mathematica" and indeed introducing a new name may also be a good thing for logic and marketing. $\endgroup$ Jan 17, 2022 at 22:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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