17
$\begingroup$

Which features are part of Mathematica, the software, and which features are Wolfram Language?

I would say there has to be a line discriminating the two somewhere. One could say that Mathematica, in addition to implementing WL, also includes:

  • Libraries beyond standard libraries one has to explicitly Get (eg. Notation).
  • Wolfram Knowlagebase with real data.
  • Notebook specific features, which actually require a front-end to evaluate.

Why do I ask? I am writing a thesis, and I was wondering if I should say

Wolfram Language command Flatten and Partition.

or

Wolfram Mathematica function DepthFirstScan.

If I would implement my own kernel, I would consider it a must to implement Table, Flatten... but I do not think an implementation of a language requires implementation of DepthFirstScan with a narrow application.

I find these related:

I have also browsed Notes for Programming Language Experts which was not specific. The Fast introduction for programmers: Built-in Functions claims

With 5,000 carefully integrated, built-in functions delivering computation and knowledge

which sounds a bit like everything implemented in MMA is WL.

Language Overview guide has an overview of all(?) syntax features, which perhaps are well on the language side of the discrimination. I also discovered WolframLanguageData, which might share some light into the matter.

$\endgroup$
7
  • $\begingroup$ I would claim (but with some reservations) that things that are primarily front-end operations should perhaps not be seen as WL kernel functions. On the other hand this means that things like exporting any Graphics to an image are not part of the language as they make use of the FE through Rasterize. So it’s certainly a bit of a slippery thing to get a handle on. Still, the fact that a different front-end may be attached to a kernel makes me suggest that. $\endgroup$
    – b3m2a1
    Commented Sep 15, 2018 at 22:40
  • $\begingroup$ Do you want to consider figure rendering capability as a language specification? $\endgroup$
    – Johu
    Commented Sep 15, 2018 at 22:46
  • 1
    $\begingroup$ Here's one answer: quora.com/… $\endgroup$
    – bill s
    Commented Sep 16, 2018 at 4:14
  • 1
    $\begingroup$ Look through the videos on Twitch with names that end with "in #WolfLang" and you will see that the things you consider not to be part of the language are all considered part of the language by Stephen Wolfram and at Wolfram Research in general. Wolfram Language is a high-level language that is meant to be able to express ideas tersely and easily. Even functions such as ImageIdentify are part of the language and help realize S.W.'s vision for the language. $\endgroup$
    – C. E.
    Commented Sep 16, 2018 at 8:39
  • $\begingroup$ If you start taking away functions then you will immediately decrease the number of ideas that can be easily expressed. This is the opposite of where this language is heading. This language is going to get many, many more functions so that it can express even more ideas in a short and easy manner, and those functions will all be part of the language. Personally, this is one of my favorite aspects of Wolfram Language. Who knows what problems Wolfram Language speakers will be able to solve in ten years. $\endgroup$
    – C. E.
    Commented Sep 16, 2018 at 8:40

1 Answer 1

8
$\begingroup$

Simple answer - Mathematica is a platform for working with the Wolfram Language, analogous to Visual C and the C language. In that sense, Mathematica is the front end. You don't have to use Mathematica to write and execute Wolfram Language programs; they can be submitted to the kernel as text files. I believe this simple answer is essentially correct.

$\endgroup$
4
  • $\begingroup$ I think you are sidestepping the question. Is DepthFirstScan a language primitive (as for in C) or is it written in the language and part of a standard library (as printf is part of stdio.h)? $\endgroup$
    – Johu
    Commented Sep 16, 2018 at 2:20
  • 1
    $\begingroup$ I think this is the right answer. Mathematica is a frontend. $\endgroup$
    – C. E.
    Commented Sep 16, 2018 at 8:41
  • $\begingroup$ You might find the answers to this similar question helpful. bit.ly/2pdA3Qo $\endgroup$ Commented Sep 16, 2018 at 14:44
  • $\begingroup$ I prefer real links, which also show the target. The referred question: Is everything in Mathematica ultimately stored as a rule?. This also makes the questions show up on the right side menue of both questions. $\endgroup$
    – Johu
    Commented Sep 18, 2018 at 15:27

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.