An Elementary Introduction to the Wolfram Language
Preface
Ive been explaining whats now the Wolfram Language to people for more than 25 years, and I finally decided it was time to take what Id learned and write a minimal introduction that people could read on their own. This book is the result of that effort.
When we first launched Mathematicathe precursor of the Wolfram Languagein 1988, I published a book that provided both a tutorial introduction and reference guide to the system. The book was very popular and I think contributed substantially to the early success of Mathematica. Over the next decade or so, The Mathematica Book, as it came to be known, went through five editions, and steadily grew until it was nearly 1500 pages long.
My goal in The Mathematica Book was to systematically cover all aspects of the system. But when we released a huge new version in 2007, it became clear that this was simply no longer possible in a single book.  Our online documentation had meanwhile steadily grown, and in 2007, with the introduction of a vast number of new examples, it reached the point where a printed version would have been well over 10,000 pages in length.
In 2009 Wolfram|Alpha arrived, with its natural-language interface specifically built for use without explanation or documentation. But then, emerging from Mathematica and Wolfram|Alpha, came the Wolfram Language, and there was once again a need for both explanation and documentation.
I believe that the online documentation for the Wolfram Languagewhich in printed form would exceed 50,000 pagesdoes very well at explaining the specifics of how to use all the many capabilities of the system. But particularly for newcomers theres also a need to understand the principles of the languagethat Ive worked so hard over the years to keep coherent and consistent.
The Wolfram Language is unique among programming languages, and different in many ways. But some time ago, I wrote a Fast Introduction for Programmers that in about 30 pages gives modern programmers at least a basic grounding in the principles of the Wolfram Language.
But what about people who dont already know programming? The Wolfram Language provides a unique opportunity not only to introduce anyone to programming, but to get them quickly to the very frontiers of what can be done with computation today.
That this is possible is a consequence of all the effort weve put into creating the technology of the Wolfram Language over the course of nearly three decades. My goal has been to build a language where anyone can specify as simply as possible what they want to do, then inside, all the details are automatically taken care of to get it done.
But what about learning the Wolfram Language entirely on ones own? Here I think whats needed is a systematic introduction that progressively builds from one concept to another, answering every obvious question as it goes. And thats what Im trying to do in this book.
Still, thereve been two millennia of development in the teaching of mathematics, that have progressively optimized the sequence of presenting arithmetic, algebra and so on. The problem of teaching the Wolfram Language is something completely new, where everything has to be figured out from scratch. Existing programming education isnt much help, because so much of it is about just the kinds of lower-level structure that have been automated away in the Wolfram Language.
I view this book as an experiment: an attempt to provide a particular path through learning the Wolfram Language. I am not trying to cover everything in the language, not least because that would take at least 50,000 pages. Instead, I am trying to explain the principles of the language through a limited number of specific examples.
Needless to say, the Wolfram Language has many sophisticated capabilities. Some of themlike identifying objects in imagesare sophisticated on the inside, but easy to explain. But otherslike computing Gröbner basesare also sophisticated to explain, and may require significant outside knowledge of mathematics or computer science.
This is certainly not the only elementary introduction to the Wolfram Language that could be written, and I hope there will be many more. It follows a specificand in many ways arbitrarypath through the vast capabilities of the language, highlighting certain features but not even mentioning many other equally deserving ones.
Stephen Wolfram
 
Download Notebook Version