Principles and Concepts

Knowledge-based programming

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 25+ years 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

Universal deployment

Deploy the language everywhere: desktop, cloud, mobile, embedded...

Building on 25+ years 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
  • 10,000 examples in the Wolfram Demonstrations Project

WolframLink, 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

Completely scalable

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

25+ year lineage

Maintain long-term consistency and vision

Developed as part of Mathematica, the core of the Wolfram Language has maintained code compatibility for more than 25 years.

  • Consistent design review process for 25+ years
  • Long-term team led by Stephen Wolfram