Principles and Concepts
Build in as much knowledge as possible
Unlike other programming languages, the philosophy of the Wolfram Language is to build as much knowledge—about algorithms and about the world—into the language as possible.
- By far the largest web of algorithms ever assembled
- Includes three decades of state-of-the-art algorithm development in Mathematica
- World's largest collection of computable knowledge
- Continually curated data on thousands of domains, as used in Wolfram|Alpha
Meta-algorithms and superfunctions
Automate as much as possible
The philosophy of the Wolfram Language is to automate as much as possible, so programmers can concentrate on defining what they want to do, and the language will automatically figure out how to do it.
- Thousands of original meta-algorithms for automatic algorithmic selection
- Fine-grained control for experts; automatic operation for others
- Automation of computation, presentation, connectivity, interface...
- Minimize size and complexity of code
Everything fits together
Maximize coherence of design
Through strong focus on core design principles across a vast span of functionality, the Wolfram Language has maintained a unified and elegant structure where everything fits together.
- Instant interoperability across all domains
- Maximum flexibility of programming constructs
- Maximal predictability and learnability
- Code readability and understandability
Everything is an expression
Represent everything in terms of symbolic expressions
The Wolfram Language represents everything—data, formulas, code, graphics, documents, interfaces, etc.—as symbolic expressions, making possible a new level of programming flexibility and power.
- Incremental programming: any fragment of code is instantly runnable
- Any form of data can immediately be represented within the system
- Code can involve any kind of object, such as an image, document, etc.
- Programs can immediately manipulate structure as well as content
WDF: Wolfram Data Framework
Have a broad built-in model of the world
Through its Wolfram|Alpha lineage, the Wolfram Language knows how to do not just computations about abstract data structures, but also ones that directly reference things in the real world.
- Seamlessly handle units, dates, geolocations, etc.
- Standard representation for millions of real-world entities
- Extensible symbolic framework for representing real-world data
- Continually updated knowledgebase battle-tested in Wolfram|Alpha
Natural language understanding (NLU)
Mix free-form linguistic input into the language
Building on breakthroughs in Wolfram|Alpha, the Wolfram Language lets you mix ordinary free-form natural language into your code.
- Start using the Wolfram Language with no programming knowledge
- Conveniently specify real-world entities by their everyday names
- Broad NLU, battle-tested in Wolfram|Alpha
- Use NLU to specify real-world objects and concepts when writing programs
- Put natural language understanding into programs you write
Deploy the language everywhere: desktop, cloud, mobile, embedded...
Building on three decades of software engineering, any Wolfram Language program can immediately be deployed across the full spectrum of modern production environments.
- Run transparently in the cloud or locally
- Instantly create a web API for any Wolfram Language program
- Seamlessly embed the Wolfram Language into software or hardware systems
- Use the Wolfram Language to symbolically describe its own deployment
CDF: Computable Document Format
Make computable documents part of the language
Built into the Wolfram Language are "notebook" documents that mix executable code with text, graphics, interfaces and more.
- Make a single document with code, examples, documentation, etc.
- Programmatically create full-featured reports and documents
- Instantly create interactive elements backed by computation
- 11,000+ examples in the Wolfram Demonstrations Project
WSTP (Wolfram Symbolic Transfer Protocol),
Wolfram Connected Devices Project, etc.
Conveniently connect to everything
The Wolfram Language has built-in connectivity to a broad spectrum of languages, services, programs, formats and devices.
- Use symbolic expressions to standardize interactions with external data and programs
- Seamlessly make external connections through the Wolfram Cloud
- Handle real-time device interactions directly within the language
Everything is interactive
Make writing and running programs integrated
The native environment for the Wolfram Language is completely interactive and lets you instantly run any piece of code.
- Try out everything you write instantly
- Instantly build visualizations and analysis around your code
- Seamlessly do incremental/exploratory programming
Make programs of any size convenient
The Wolfram Language scales from one-line programs to multi-million-line programs, and from single users to large-scale public deployments.
- Convenient IDEs for both interactive use and large-scale programming
- Create Wolfram Language code and immediately run it in parallel
- Annual one-liner competitions showcase language expressiveness
- Wolfram|Alpha Wolfram Language codebase is above 15 million lines
Multiparadigm fusion language
The language should be as expressive as possible
Through its unique symbolic character, the Wolfram Language is an elegant fusion of many programming paradigms, familiar and novel.
- Almost anything is shorter in the Wolfram Language than in any other
- Built-in constructs connect directly to concepts
- Broad industrial strength functional programming
- Pattern-based symbolic programming
- Strong theoretical foundations
Maintain long-term consistency and vision
Developed as part of Mathematica, the core of the Wolfram Language has maintained code compatibility for more than three decades.
- Consistent design review process for three decades
- Long-term team led by Stephen Wolfram