Something Very Big Is Coming: Our Most Important Technology Project Yet

Computational knowledge. Symbolic programming. Algorithm automation. Dynamic interactivity. Natural language. Computable documents. The cloud. Connected devices. Symbolic ontology. Algorithm discovery. These are all things we’ve been energetically working on—mostly for years—in the context of Wolfram|Alpha, Mathematica, CDF and so on.

But recently something amazing has happened. We’ve figured out how to take all these threads, and all the technology we’ve built, to create something at a whole different level. The power of what is emerging continues to surprise me. But already I think it’s clear that it’s going to be profoundly important in the technological world, and beyond.

At some level it’s a vast unified web of technology that builds on what we’ve created over the past quarter century. At some level it’s an intellectual structure that actualizes a new computational view of the world. And at some level it’s a practical system and framework that’s going to be a fount of incredibly useful new services and products.

I have to admit I didn’t entirely see it coming. For years I have gradually understood more and more about what the paradigms we’ve created make possible. But what snuck up on me is a breathtaking new level of unification—that lets one begin to see that all the things we’ve achieved in the past 25+ years are just steps on a path to something much bigger and more important.

Something big is coming...
I’m not going to be able to explain everything in this blog post (let’s hope it doesn’t ultimately take something as long as A New Kind of Science to do so!). But I’m excited to begin to share some of what’s been happening. And over the months to come I look forward to describing some of the spectacular things we’re creating—and making them widely available.

It’s hard to foresee the ultimate consequences of what we’re doing. But the beginning is to provide a way to inject sophisticated computation and knowledge into everything—and to make it universally accessible to humans, programs and machines, in a way that lets all of them interact at a vastly richer and higher level than ever before.

A crucial building block of all this is what we’re calling the Wolfram Language.

In a sense, the Wolfram Language has been incubating inside Mathematica for more than 25 years. It’s the language of Mathematica, and CDF—and the language used to implement Wolfram|Alpha. But now—considerably extended, and unified with the knowledgebase of Wolfram|Alpha—it’s about to emerge on its own, ready to be at the center of a remarkable constellation of new developments.

We call it the Wolfram Language because it is a language. But it’s a new and different kind of language. It’s a general-purpose knowledge-based language. That covers all forms of computing, in a new way.

There are plenty of existing general-purpose computer languages. But their vision is very different—and in a sense much more modest—than the Wolfram Language. They concentrate on managing the structure of programs, keeping the language itself small in scope, and relying on a web of external libraries for additional functionality. In the Wolfram Language my concept from the very beginning has been to create a single tightly integrated system in which as much as possible is included right in the language itself.

And so in the Wolfram Language, built right into the language, are capabilities for laying out graphs or doing image processing or creating user interfaces or whatever. Inside there’s a giant web of algorithms—by far the largest ever assembled, and many invented by us. And there are then thousands of carefully designed functions set up to use these algorithms to perform operations as automatically as possible.

Over the years, I’ve put immense effort into the design of the language. Making sure that all the different pieces fit together as smoothly as possible. So that it becomes easy to integrate data analysis here with document generation there, with mathematical optimization somewhere else. I’m very proud of the results—and I know the language has been spectacularly productive over the course of a great many years for a great many people.

But now there’s even more. Because we’re also integrating right into the language all the knowledge and data and algorithms that are built into Wolfram|Alpha. So in a sense inside the Wolfram Language we have a whole computable model of the world. And it becomes trivial to write a program that makes use of the latest stock price, computes the next high tide, generates a street map, shows an image of a type of airplane, or a zillion other things.

We’re also getting the free-form natural language of Wolfram|Alpha. So when we want to specify a date, or a place, or a song, we can do it just using natural language. And we can even start to build up programs with nothing more than natural language.

There are so many pieces. It’s quite an array of different things.

Wolfram Language categories

But what’s truly remarkable is how they assemble into a unified whole.

Partly that’s the result of an immense amount of work—and discipline—in the design process over the past 25+ years. But there’s something else too. There’s a fundamental idea that’s at the foundation of the Wolfram Language: the idea of symbolic programming, and the idea of representing everything as a symbolic expression. It’s been an embarrassingly gradual process over the course of decades for me to understand just how powerful this idea is. That there’s a completely general and uniform way to represent things, and that at every level that representation is immediately and fluidly accessible to computation.

It can be an array of data. Or a piece of graphics. Or an algebraic formula. Or a network. Or a time series. Or a geographic location. Or a user interface. Or a document. Or a piece of code. All of these are just symbolic expressions which can be combined or manipulated in a very uniform way.

But in the Wolfram Language, there’s not just a framework for setting up these different kinds of things. There’s immense built-in curated content and knowledge in each case, right in the language. Whether it’s different types of visualizations. Or different geometries. Or actual historical socioeconomic time series. Or different forms of user interface.

I don’t think any description like this can do the concept of symbolic programming justice. One just has to start experiencing it. Seeing how incredibly powerful it is to be able to treat code like data, interspersing little programs inside a piece of graphics, or a document, or an array of data. Or being able to put an image, or a user interface element, directly into the code of a program. Or having any fragment of any program immediately be runnable and meaningful.

In most languages there’s a sharp distinction between programs, and data, and the output of programs. Not so in the Wolfram Language. It’s all completely fluid. Data becomes algorithmic. Algorithms become data. There’s no distinction needed between code and data. And everything becomes both intrinsically scriptable, and intrinsically interactive. And there’s both a new level of interoperability, and a new level of modularity.

So what does all this mean? The idea of universal computation implies that in principle any computer language can do the same as any other. But not in practice. And indeed any serious experience of using the Wolfram Language is dramatically different than any other language. Because there’s just so much already there, and the language is immediately able to express so much about the world. Which means that it’s immeasurably easier to actually achieve some piece of functionality.

I’ve put a big emphasis over the years on automation. So that the Wolfram Language does things automatically whenever you want it to. Whether it’s selecting an optimal algorithm for something. Or picking the most aesthetic layout. Or parallelizing a computation efficiently. Or figuring out the semantic meaning of a piece of data. Or, for that matter, predicting what you might want to do next. Or understanding input you’ve given in natural language.

Fairly recently I realized there’s another whole level to this. Which has to do with the actual deployment of programs, and connectivity between programs and devices and so on. You see, like everything else, you can describe the infrastructure for deploying programs symbolically—so that, for example, the very structure and operation of the cloud becomes data that your programs can manipulate.

And this is not just a theoretical idea. Thanks to endless layers of software engineering that we’ve done over the years—and lots of automation—it’s absolutely practical, and spectacular. The Wolfram Language can immediately describe its own deployment. Whether it’s creating an instant API, or putting up an interactive web page, or creating a mobile app, or collecting data from a network of embedded programs.

And what’s more, it can do it transparently across desktop, cloud, mobile, enterprise and embedded systems.

It’s been quite an amazing thing seeing this all start to work. And being able to create tiny programs that deploy computation across different systems in ways one had never imagined before.

This is an incredibly fertile time for us. In a sense we’ve got a new paradigm for computation, and every day we’re inventing new ways to use it. It’s satisfying, but more than a little disorienting. Because there’s just so much that is possible. That’s the result of the unique convergence of the different threads of technology that we’ve been developing for so long.

Between the Wolfram Language—with all its built-in computation and knowledge, and ways to represent things—and our Universal Deployment System, we have a new kind of universal platform of incredible power. And part of the challenge now is to find the best ways to harness it.

Over the months to come, we’ll be releasing a series of products that support particular ways of using the Wolfram Engine and the Universal Platform that our language and deployment system make possible.

There’ll be the Wolfram Programming Cloud, that allows one to create Wolfram Language programs, then instantly deploy them in the cloud through an instant API, or a form-based app, or whatever. Or deploy them in a private cloud, or, for example, through a Function Call Interface, deploy them standalone in desktop programs and embedded systems. And have a way to go from an idea to a fully deployed realization in an absurdly short time.

There’ll be the Wolfram Data Science Platform, that allows one to connect to all sorts of data sources, then use the kind of automation seen in Wolfram|Alpha Pro, then pick out and modify Wolfram Language programs to do data science—and then use CDF to set up reports to generate automatically, on a schedule, through an API, or whatever.

There’ll be the Wolfram Publishing Platform that lets you create documents, then insert interactive elements using the Wolfram Language and its free-form linguistics—and then deploy the documents, on the web using technologies like CloudCDF, that instantly support interactivity in any web browser, or on mobile using the Wolfram Cloud App.

And we’ll be able to advance Mathematica a lot too. Like there’ll be Mathematica Online, in which a whole Mathematica session runs on the cloud through a web browser. And on the desktop, there’ll be seamless integration with the Wolfram Cloud, letting one have things like persistent symbolic storage, and instant large-scale parallelism.

And there’s still much more; the list is dauntingly long.

Here’s another example. Just as we curate all sorts of data and algorithms, so also we’re curating devices and device connections. So that built into the Wolfram Language, there’ll be mechanisms for communicating with a very wide range of devices. And with our Wolfram Embedded Computation Platform, we’ll have the Wolfram Language running on all sorts of embedded systems, communicating with devices, as well as with the cloud and so on.

At the center of everything is the Wolfram Language, and we intend to make this as widely accessible to everyone as possible.

The Wolfram Language is a wonderful first language to learn (and we’ve done some very successful experiments on this). And we’re planning to create a Programming Playground that lets anyone start to use the language—and through the Programming Cloud even step up to make some APIs and so on for free.

We’ve also been building the Wolfram Course Authoring Platform, that does major automation of the process of going from a script to all the elements of an online course—then lets one deploy the course in the cloud, so that students can have immediate access to a Wolfram Language sandbox, to be able to explore the material in the course, do exercises, and so on. And of course, since it’s all based on our unified system, it’s for example immediate that data from the running of the course can go into the Wolfram Data Science Platform for analysis.

I’m very excited about all the things that are becoming possible. As the Wolfram Language gets deployed in all these different places, we’re increasingly going to be able to have a uniform symbolic representation for everything. Computation. Knowledge. Content. Interfaces. Infrastructure. And every component of our systems will be able to communicate with full semantic fidelity, exchanging Wolfram Language symbolic expressions.

Just as the lines between data, content and code blur, so too will the lines between programming and mere input. Everything will become instantly programmable—by a very wide range of people, either by using the Wolfram Language directly, or by using free-form natural language.

There was a time when every computer was in a sense naked—with just its basic CPU. But then came things like operating systems. And then various built-in languages and application programs. What we have now is a dramatic additional step in this progression. Because with the Wolfram Language, we can in effect build into our computers a vast swath of existing knowledge about computation and about the world.

If we’re forming a kind of global brain with all our interconnected computers and devices, then the Wolfram Language is the natural language for it. Symbolically representing both the world and what can be created computationally. And, conveniently enough, being efficient and understandable for both computers and humans.

The foundations of all of this come from decades spent on Mathematica, and Wolfram|Alpha, and A New Kind of Science. But what’s happening now is something new and unexpected. The emergence, in effect, of a new level of computation, supported by the Wolfram Language and the things around it.

So far I can see only the early stages of what this will lead to. But already I can tell that what’s happening is our most important technology project yet. It’s a lot of hard work, but it’s incredibly exciting to see it all unfold. And I can’t wait to go from “Coming Soon” to actual systems that people everywhere can start to use…

37 comments

  1. I certainly applaud the continued evolution of these great tools. Please make them as widely available as possible (i.e. free) and without proprietary formats. Power users will be happy to pay and with a broader base of new users, you should grow your revenues.

  2. SW, you have created a new kind of intellectual property. Please forgive the pun. This is deeply impressive and inspiring.

  3. Very exciting, Stephen. Congratulations.

  4. Sir, I admire what you’ve done and I know you’ll do more fantastic things in the future. But I don’t think that the world can be represented by symbols — only a tiny fraction of the world can.

  5. Great!

  6. I am very much interested to learn more about it .

  7. Do you think this “new level of computation” will have deep philosophical implications?

    To me it seems like you are almost hinting that your discovery might pave a way for “strong AI” or conscious computers.

    “The Wolfram Language can immediately describe its own deployment.”

    A “Strange loop”? (https://en.wikipedia.org/wiki/Strange_loop)

  8. I see someday everyone having their own version of Tony Stark’s Jarvis – A super smart assistant who knows how you think. Wolfram corp. will probably get there first

  9. This is something I am waiting for, finally.

  10. Wow.. this sounds magnificent. Can i come work with you guys?

  11. Wolfram I’m so excited about this, Can’t wait to see this released

  12. This is no less than the beginning of the end of 5 decades of constantly increasing madness in really all of IT – most but all even called progress.
    I will just call this the “Next Big Thing” (TM). And if anyone else than Wolfram Research would have come up with such an unbelievably broad program i would have just called “Clever concept, but shut up – they’ll never make it”. But far from that when seeing this here! Congratulations – this will finally free the world from the slavery of specification for us ordinary (and usually lousy) IT experts and consultant programmers – and give the machines in the hand of initially expert engineers in their field, enabling them to *create* themselves. To express the intrinsic knowledge in their very own technical or scientific field, and in the end – for everyone with the desire to – literally – see an idea to become real. Stephen, thank you very much – can’t wait to get my hands on it.

  13. Certainly very exciting news. I am looking forward to our new overlord 🙂

  14. Can hardly wait to see and use it!

  15. Incredible, looks just awesome. What if WL replaces all existing languages one day, you rock!

  16. i hope we don’t have to wait for the entire language project to be completed before WL is released as a stand-alone language and app so that we can program ‘on the go’.

  17. I am so happy to see this happening. I have seen this step coming for years. I got the pleasure of seeing the my son learning Mathematica as his first language at the perfect time. I was lucky enough to be learning Mathematica at the same time. I watched him become a physicist and then an applied mathematician. I love his stories of showing off what he can do with Mathematica at national labs.

  18. Brilliant beyond my imagining!

  19. This a positive devrlopment – a new approach to computer languages freed of the old object oriented or procedural paradigm.

  20. Wow, I want to use this with my students.

  21. I assume that SW is creating a WL Operating System… are you?

    Congratulations, all these reads magnificent.

    So, when are we getting a peak?

  22. Kudos Steve, Looking forward to WL

  23. Congratulations for all the people in Wolfram Research!

    Does anybody know about efforts in Wolfram Research towards the Semantic Web? Does the new Computable Document Format enable more efficient access to knowledge in the WWW? What role can the CDFs play in a Semantic Web, and how the search engines look like (will they be just a function run in real time in Wolfram language)?

  24. This will be a cool language.. maybe I’ll learn it.

  25. A really exciting development, Stephen. As a UK user of Mathematica for its first quarter century (15 years as a professional in education and 10 years as a retired amateur), I applaud your vision and I look forward to the launch of the Wolfram Language.

    One suggestion: in features like Problem Generator and Step-by-step solutions, I would love to see a customization facility whereby teachers could modify text elements to reflect the wording/language that they use with their own students – all other elements of problem statements and solutions would remain unchanged.

    With sincere good wishes.

  26. The number of ‘nodes’ in the world whether it’s people, machines, graphics, knowledge, data, networks, programs, algorithms or functions is nearly unfathomable.

    Seems like your framework makes it easy to manage both nodes as well as nodes of nodes – no matter what type of information, knowledge, data, system or machine they might be.

    Keep up the great work Stephen – can’t wait to see what the world does with this!

    Dan

  27. This is more than great!

  28. I can’t wait to bring my 10 year old to the Playground!

    Have you settled on a name for this new paradigm? How about Knowledgeable Computing?

  29. Advances in Mathematics were always the base in advances in Physics and other natural sciences. But it gets more and more difficulty for a natural scientist, to master all new developments in Mathematics. Mathhematica has got the needed link between abstract Mathematics and its applications. It should get possible in the future, to develop kind of expert system, which can find the best mathematical description for a set of data, make predictions and suggestions for trials, how to prove or disprove them. In some regard some deeper insight in the working of the human brain will be needed, how associative thinking can be used and also kind of holistic thinking. But it should be possible, if an expert system is developed be thousands of people. We see, what then can get achieved, if we look at Wikipedia.

  30. It sounds great! I’ve been using MM for 10 years and loving it more and more, and its now going to be included in my teaching soon. Now, we want to create our own curated databank/knowledge system using large datasets. Please empower us to do this, as well as to control specialized programs in different languages through this ultimate system. Congratulations! From South Africa

  31. Very exciting!!!! Congratulations!

  32. This looks absolutely amazing I can’t wait to start using it! Is it possible to release some application examples or something similar so that we can start to learn WL before it is realised?

    Also in another of your blogs about naming mathematica you mentioned the name “flow” but as you said it didn’t work too well as q mathematical computation engine name, however as a programming language name “flow” has a really nice ring to it. As well as fitting in context as all the different segments of code work together and therefore flowing.

  33. I keep the most the merge of data and algorithms. This is a paradigm shift that mimics life. Life evolves to suit the environment and (literally) vice versa. The culmination of this process is the human brain.

  34. Congratulations Stephen! This is amazing! I gave Wolfram Mathematica 6.0 a try a while back (I’m not a math guy, just a tech guy) just to see what the technology was capable of. And I was absolutely blown away by how effective it was in solving my various Calculus problems. I know that the software can do so much more, and I’m sure that when I talk about its capability to do something remedial as Calculus problems, it is almost insulting…but I was so impressed by how easy it has made everything, that I really thought this is the next step in mankind’s evolution. Guess I was wrong! Looks like the Wolfram Language and Cloud is the next step. Like you, I could not have imagined the paradigm shifts that this software could create, and reading this post it looks like you are going to change the world! And I for one, want to be there when it happens! Signed up for the Wolfram Cloud notification….Exciting stuff! Keep up the great work!

  35. I just saw the video presentation you id on the Wolfram Language. You have changed the face of scientific discovery and engineering. Awe-inspiring.

  36. I have several ambitious, world-improving AI-related projects that I’m planning to implement, and it seems that doing so will be radically easier when using Wolfram Language. It will be incredibly exciting to see Wolfram Language manifest and I’m very grateful and awestruck towards you for making all this happen.

  37. I acknowledge that Wolfram Language is THE programming language to control both semantics and data. Recently I formulated a new perspective on information modeling based on the theory of semiosis. I am posting regularly about this at Computational semiotics group and Semantic Web Research group at LinkedIn. A recent post of mine that describes the relation of Wolfram Language to R3DM and discusses future directions in brief can be found at
    http://goo.gl/ccgGQ5 and at goo.gl/8ZuikV.