# Distinguishing Wolfram Language and Mathematica, the software

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.

• 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. – b3m2a1 Sep 15 '18 at 22:40
• Do you want to consider figure rendering capability as a language specification? – Johu Sep 15 '18 at 22:46
• Here's one answer: quora.com/… – bill s Sep 16 '18 at 4:14
• 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. – C. E. Sep 16 '18 at 8:39
• 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. – C. E. Sep 16 '18 at 8:40

• 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)? – Johu Sep 16 '18 at 2:20