Stephen Wolfram: “Implementing Computing Everywhere”
Translation of Steven Wolfram's lecture delivered by him at SXSW 2014.
You can find the original text here .

Two weeks ago, I gave a speech at the SXSW conference in Austin, Texas. This article is a slightly modified thesis of the report (this is a compendium of the text, including demonstrations that had to be abandoned in the process of speaking) :
So, quite a lot has been planned for this hour.
In general, I would like to tell a story that has been happening to me over the past 40 years, which is beginning to bring amazing results only now. I mean, we can practically observe these results today. For the first time, I would like to introduce you to the whole range of technologies, which is a rather significant result of these forty years of work. And I think this is important enough.
I always liked to present programs live. But today I'm going to risk more than usual and demonstrate many things that are still at the testing stage. I hope that at least most of them work.
So, the main task is to start taking computing seriously. Understand the idea of computing as such, and then create a technology that allows them to be implemented everywhere - and then see where it leads.
You could say I have been chasing this idea for 40 years. I have been balancing for a long time at the intersection of science and technology - I create ever-larger building blocks and build from them an ever higher tower. And every few years I manage to see where it will grow further. In my opinion, it turns out great. However, something surprising has happened in the last few years - a kind of great unification that leads to the technological Cambrian explosion . And today, for the first time, I will partially introduce it to you.
But, for starters, a little history. 40 years ago, I was a 14-year-old boy who first touched a computer (it was then the size of a table). I did not often use it as something fundamental, but I tried to understand some things from physics with it.that really interested me. At that moment I discovered some important things that I still use. But now I understand that the most important thing that I understood then was not related to physics at all: the better the tools we use, the deeper we can dig. “Mathematics on paper” was not very good for me, but at that time it was a serious problem for those who wanted to study physics. However, I realized that the calculations can be done on the computer and began to create tools for this. Very soon, with my programs, I was the best in mathematical calculations for physics.
We will return to the year 1981. This year something amazing happened for a 21-year-old scientist - I turned all this into my first product and my first company. The important thing is that it made me realize that software products can stimulate intellectual thinking. It was necessary to figure out how to create a language for mathematical calculations on a computer, and it took me a lot to understand about computing in order to achieve the goal. And then I again plunged into the foundations of science already using the created tools.
In the end, I realized that while mathematics is doing well, its fundamental concept needs to be generalized. I began to study the whole universe of all kinds of formal systems, which is essentially a universal computing universe of possible programs. I set up small experiments - as if I were directing my computing telescope to parts of this universe and watching what was there. What I saw was amazing. Below I will show you some simple programs.
Some do very simple things, but there are some that, with seeming simplicity, do amazingly complex things.

This is my favorite program, because I saw it first in this class of programs. She’s called rule 30, and 30 years later she’s still on the back of my business cards. ( See note 1 at the end. )

The simplest program. The simplest initial condition. But she is doing something crazy. It creates complex structures from nothing, which is a rather interesting phenomenon. It seems to me that it reflects the great secret of how nature works. And yes, I spent many years studying this - an insanely interesting activity.
But in the process of studying these things, I realized that I needed more advanced tools than those that I had. And, basically, therefore, I created Mathematica. It’s a little ironic that the name of the program is the word “mathematics”. Because it was originally conceived to expand the boundaries of classical mathematics. The main super idea is to get to the bottom of mathematics and find its computational foundation on which everything will be built. I managed to do this in the language of the Mathematica system. Over the years, he showed himself perfectly, and we constantly supplemented and refined it. ( See note 2 at the end. ) In fact, Mathematica celebrated its 25th anniversary last year.

. For 25 years, it was used to invent, discover and study countless things in a huge number of universities, large companies and similar organizations around the world. I myself managed to work with Mathematica for about 10 years for my own research. I discovered a lot of interesting things in the field of science, technology and philosophy and wrote a book about it called " New Kind of Science " (A New Kind of Science) . ( See note 3 at the end. )

But let's go back to the past: when I was a teenager, I was really interested in one thing - the systematization of information. And it seemed to me that the day would come when a person could create a system that could automatically answer questions about almost everything. By that time, I had found out a lot about how to automate the process of answering questions related to mathematics. But I wanted to somehow generalize this opportunity to answer any questions. Our world needs something like universal artificial intelligence like a human brain. And this task already seemed very difficult.
Every 10 years or so, I come back to this idea and come to the conclusion that, yes - it is still very difficult. But while I was doing my research, I realized something important: sometimes the execution of even a very simple program can produce structures that are similar in complexity to the human brain.

In fact, there is not much difference between the brain-like intelligence and these structures. The consequences of such thinking are the dilemma between free will and predestination , as well as the search for extraterrestrial intelligence . However, such programs made me realize that to answer many different questions it is not necessary to create artificial intelligence similar to the brain. Conventional calculations, like the ones that underlie Mathematica, may be enough.
I was not sure that now is the right decade or even the right age for this, but the advantages of owning a small company allowed me to conduct an experiment. Now I am happy to state that, as it turned out, the task was not so difficult - we created Wolfram | Alpha . You enter something there in a natural language, and the system uses the full power of the data, knowledge, methods and algorithms embedded in it to simply generate a report of what you asked. Yes, by the way, if you use Wolfram | Alpha, you should have noticed that yesterday the Wolfram | Alpha web interface acquired a new elegant look. Wolfram | Alpha knows a lot about it. Thousands of fields of knowledge and quintillions of data particles cover in truth a huge area of knowledge available to mankind.


And in fact, every day, many millions of people ask the system about a variety of things - directly on the site, through mobile applications and through technologies such as Siri, which also knows how to access Wolfram | Alpha.
So, what do we have: Mathematica, which has become the foundation for a language for describing and performing any technical calculations. And we also have Wolfram | Alpha, which knows everything about our world and interacts with which it uses an extremely ambiguous natural language. Well, Mathematica has grown over 25 years, and Wolfram | Alpha is only 5. We are constantly inventing new ways to expand the main directions of these systems further and further. But now something truly global and incredible has happened. And for me personally, a completely different area has become a catalyst for this: cloud technology.
Then it seemed to me that the Cloud was not bringing something qualitatively new - I thought it was just practical. But I was wrong. Now, finally, I understand that this is the same detail that allows us to combine two global approaches to computing (Mathematica and Wolfram | Alpha) to make this something much more global.
Now I have to admit that the result of all this has considerable intellectual complexity. However, it is extremely practical. I've always liked situations where big ideas lead to truly useful innovative products, as is the case with Wolfram Research. We have taken one super idea and are making many (hopefully useful) products. At some level, describing each product is quite simple, but the most exciting thing is what they are together. And I would like to talk about this today. But, I will say in advance - although this story seems to me extremely important, it is not at all easy to tell.
But, the main thing is to start. At the core of everything is what we call the Wolfram Language . We are only just beginning to release it a little. ( See note 4 at the end.) The core of the Wolfram Language has been “grown” in Mathematica for over 25 years. There it was perfectly tested, and now we add all the new ideas and technologies from Wolfram | Alpha and from the Cloud . This allows us to move to a new quality level. I am absolutely delighted with this. The idea is to create a knowledge-oriented language. A language in which a huge amount of knowledge about computing and about our world is embedded. The fact is that most programming languages focus on basic machine operations. They provide many great ways to manage executable code. Sometimes they have libraries for specific things.

But our idea of the Wolfram Language is the exact opposite - to create a language in which as much is embedded. Where the language itself can do as much as possible. Where everything is automated as much as possible.
Ok, let's look at how it works.
You can use the Wolfram language fully interactively using the laptop interface that we created for Mathematica.

Ok, everything is clear here. Let's do something a little more complicated:

Yes ... it's a big number. It looks almost like a bunch of random numbers, similar to, say, 60 thousand points taken from some sensor. How can we analyze them? Everything that may be required is already built into the Wolfram language.

So, say, we can calculate the average value accurately and approximately: We can calculate the asymmetry coefficient: Or hundreds of other statistics, tests, or visualizations. This dependency looks a little strange indeed. But let me not go into details now, explaining this effect. Good. Here is something completely different. Let's allow Wolfram to access some Facebook user account and retrieve the graph of his friends : Okay, we got the graph, what's next? Wolfram knows how to work with graphs and networks. Let's say let's calculate its breakdown into communities: Let's try something else. Now we get the image from my small camera:







So we got it. Now let's do something with it. We can just take this image and put it in some function: We got an image broken into small pieces. Let's make it interactive: Now, turn each of the fragments to a certain angle: Now, let's sort them by color. We can make in this way some funny application that outputs a table of fragments: Ok, this is quite funny. Why don't we post it on our Twitter?






OK. In fact, the whole point is that the Wolfram language simply inherently knows a lot. He knows how to analyze graphs and networks. He knows how to work with images, performs the most sophisticated algorithms for processing them. Wolfram also knows about the world around it. For example, we could ask him when the sun rose this morning in the place where we are: Or the time between sunrise and sunset today: Or we could get the current air temperature where we are now: Or a graph of the temperature versus time over the past day:





This language is actually a very large object and, based on what we have done for Wolfram | Alpha, it can also answer many questions in the form of a natural language. And what is really powerful is that we can use it to refer to objects in the real world.
Let's just enter “Ctrl” + “Shift” + “=” + “nyc” (the first three keys are just needed to launch the free input interface):

And this design is converted to the “New York City” object. So now we can find the temperature difference where we are in New York: Ok. Let's do something more complicated, find countries bordering Ukraine: Now find the lengths of the borders of these countries: And create a table from the data:




Or, maybe we’ll make a cloud of country names, and we’ll associate the size of each name with the length of the corresponding border: Or we can find all the former republics of the USSR: And display their flags: Now, let's find a flag which of the countries is closest to the French: Pretty simple, don’t is not it? Or, let's take the first few former Soviet republics and create maps of their capitals, on which we mark a circle with a radius of 10 miles: I think it’s pretty surprising that you can do this kind of thing right inside the programming language, with just one line of code. And, you know, there are a huge number of areas of knowledge built into the Wolfram language. We have been creating all this for more than a quarter of a century.







The language has knowledge of both algorithms and the world.
There are two great principles in it . First, maximum automation - automate as much as possible. You ask what you want the language to do, and it will figure out how to do it. There may be hundreds of algorithms for doing something in various cases. But what we want to do is the meta-algorithm, which itself chooses the best way to do this. Thus, all that a person has to do is to determine his goals, after that it’s up to a system that will strive to solve the problem in the fastest, most accurate and most beautiful way.
For example, there is a Classify functionwhich classifies data by performing the classic machine learning task. You simply type Classify and put in it a small training set of uppercase numbers (images) and values that correspond to them: At the output, you get a classifier. We can apply it to what we just drew: Well, well, here's another important thing about the Wolfram language: it's the consistency and uniformity of everything. We strive to ensure that everything in the language is combined with each other. Even though it is a huge system, if you do something with geographic data in it, we make it ideally suited to what you do with graphs and networks. I spent a decent part of the last 25 years of my life creating a rigorous system design


which is required to implement these concepts. It was fun, but it was hard work. Spending all this time to make things obvious, so that the language is easy to learn, remember and to guess about some function, if you do not even know if it is. But you know, due to the fact that all the available building blocks of the language are so well suited to each other, we are witnessing the emergence of new powerful algorithms. And we had a great time inventing thousands and thousands of new algorithms that became possible only in our language, in which we have all these different areas connected to each other.
And in fact, there is one really fundamental idea, thanks to which we were able to implement this kind of integration. It lies in the fact that the Wolfram language has the main fundamental feature - it is a symbolic language. If you simply type x into the language, it will not throw an error that x is undefined. x is just something, the symbol x is something the language can work with. Of course, this is very good for math. But, to my surprise, one of the great discoveries of the idea of symbolic language is that the same concept can be applied to countless other objects and areas of knowledge. Everything in our language is a symbolic object. Be it mathematical expressions: or objects such as Austin, TX (Austin, Texas): Or, say, graphic primitives, let's say a sphere:





And here is a collection of cylinders: Since all this is just symbolic expressions, we can take any of them and, if we want, do some morphological processing of the image, for example, search for the boundaries of objects: you know, everything is just a symbolic expression. Another example is graphical interfaces. Here is a symbolic slider: Here is a collection of sliders: You know, since everything is a symbolic expression, it gives you tremendous freedom. Here is the sequential application of the function f to the expression: Here is the sequential application of the function called Framed, which frames the expression at the output: And here is a completely similar character construction based on the simplest graphical interface:








Ah ... my goodness ... it's a fractal interface!
You know, since all objects are symbolic, it’s really easy to do anything. Say, here is a three-dimensional graph of a parametrically defined function: Now, in one movement, make it interactive: You can do the same with anything: Ok. Another class of objects that are symbolic is documents. The document in which I am currently typing is another symbolic expression. And you can create in it everything that you want symbolically. Let's say this is some text. If we want, we can rotate it at an arbitrary angle: Everything is just a symbolic expression.





OK. There is one more thing that is a symbolic expression - this is the code. Each piece of code in Wolfram is just a symbolic expression that you can take and work with it anytime, anywhere. This is extremely important for programming, as it means that you can create things in a modular way.
This is also important for another reason: this is a great way to work with the Cloud, which can be seen as a kind of gigantic active storage for parts of symbolic computing. In fact, we have already created all this infrastructure, which I am going to demonstrate here for the first time today. ( See note 5 at the end. )
Let's say we have a symbolic expression: Now we can just put it in the Cloud:



We received a symbolic CloudObject object with a URL at which we can go to this object from anywhere in the world. We crossed it and now we got our object.
Now let's make some program instead of this immutable object. On the Internet, it will be convenient to access it using the API. Thanks to our symbolic concept of everything, this operation can also be easily represented in this way. Now we can put this program in the Cloud: This way we got a direct API. Now we can simply append the API parameter at the end of the link, say? Size = 150 and get an answer, and it doesn’t matter from which place on the Internet we sent the request: And every time you do this, you will actually call this little Wolfram language code



Wolfram Cloud and get back the result of the calculations.
There is one more thing that can be done - create a form for user input. Just change APIFunction to FormFunction : Now what we got is already an input form: Let's add another input field that allows you to rotate the entered text by an arbitrary angle: Now let's enter some values into the input form: When we click on the Submit button we get the result: approx. Let's try another example. Here is a form that takes the names of two cities and draws a map showing the shortest path between them: Let's put this function in the Cloud: Now fill out the form:








And when we click on Submit, here is what we get:

Just one line of code and we actually got a ready-made small, but powerful, web application! Inside it lies a very powerful new technology. You see these input fields - they are what we call “smart input fields”, because they are able to understand the natural language :

If you specify what is not a city, then this will happen:

When you enter a city name, the system automatically interprets input as an object from many cities. Let me show you what's going on inside. Let's define a form that simply returns a list of the entered objects:

Now, if we enter the names of the cities, we simply get the symbolic objects of the Wolfram Language, which, of course, can then participate in the calculations: Okay, let's try something else. Let me show you an example of today's popular type of programming. Let's make a funny application that shows us images through the eyes of a cat or dog. Ok, let's create the simplest code base: Now let's create an algorithm that transforms the image according to how the dog would see it, convert the color channels and take into account visual acuity. Ok, let's now create an application based on this code: Now we can distribute this application. But first, create an icon for it:











And now let's make it a public application:

Now we ’ll go to the Wolfram Cloud application for iPad:

And in it we already see the application that we just published:

Click on the application icon. What we will see is a ready-made mobile application created using the Wolfram Language in the Cloud.

We can use the iPad camera to take a photo and then look at the result of its processing by our application:

Pretty good, isn't it?
Ok, but that’s not all. Let me tell you about the first product coming out of our Wolfram Language Technology stack. It will be available soon. We call it by Wolfram Programming Cloud (Cloud Programming Wolfram)

All the things that I'm showing you now are happening in the Cloud. Including programming. Of course, there is also a desktop version - the Wolfram Mathematica system.
Ok, so here is the Wolfram Programming Cloud:

You can create applications directly in the Cloud. Let's create a function and just use CloudDeploy []:

Or use the GUI (graphical user interface): You

can also take the CDF and put it in the Cloud.
Let's get some code from the Wolfram Demonstrations Project website. In fact, it so happened that this was the very first Demo that I did when the site was still being created.

Here is the complete Cloud CDF application.

It only requires a browser and since it works withWolfram Engine in the Cloud, it has arbitrary interactivity.
Ok, using this technology, we are creating another product - Data Science Platform . The idea is this: information comes from a variety of sources, and we have all the methods for its automated analysis using a kind of gigantic meta-algorithm, as well as the knowledge about the modern world that we have. This way you can program anything using the Wolfram Language and ultimately you can create a report. At your request, as from an API or application. Or just on schedule. You can also use CDF character documents to create these reports.

For example, here is a report template for the number of incoming messages on my inbox. It is created as a simple character document, so that I can easily edit it.

And then programmatically generate reports using it:

You know, there are really exciting things that we can do with information using our entire stack of symbol language technologies. We recently realized that we can use it to create a union and generalization of SQL and NoSQL databases. And we implemented this at four different, mutually transparent, levels: memory, files, databases, and dispersed information.
OK. On the other hand, we have a really good way of representing individual pieces of data. We call it WDF - Wolfram Data Framework(Wolfram Data Structure). Basically, WDF is a kind of algorithmic ontology that we created for Wolfram | Alpha - we know that it works - and we use it. WDF uses our natural language understanding tools to import unstructured data and automatically transform it into something structured and computable. Let's say our Data Science Platform does a good job of this.

Oh well. Here is something else. The fastest growing source of data in the world is the so-called connected devices, which are, in fact, a variety of sensors and robots that can transmit information to the network or share it in other ways. People are actually more and more closely associated with them. One thing I wanted to do recently was just to find out what devices of this type now exist. So we started the Connected Devices Project to oversee the devices that really exist at the moment, similar to how we supervise a variety of things in Wolfram | Alpha.

In our database now there are already about 2500 devices, and their number is growing every day. Of course, we use WDF to organize all this, and, of course, all this information is available through Wolfram | Alpha. OK. Thus, there are all these devices and they measure something and do something. And they all typically interact with the Internet. What we do - with our Data Science Platform and in general with everything - is the creation of a truly uninterrupted and flexible infrastructure for processing data from these devices or any other, in order to visualize, analyze and calculate everything that is available and comes to “The Internet of Things”.

You know, even for those devices that still do not know how to send data to the Internet, we have tools that help to work with them. For example, here's an accelerometer attached to an Arduino:

Let's see if we can enter data from this device into Wolfram Language. It’s not so difficult: Now we visualize this data: So, this is how devices can be connected to the Wolfram language. But there is something else. This is already an introduction of the Wolfram Language into devices. And this is the thing that pays off 25 years of hard software engineering, because, just as devices run things like Linux, we can run Wolfram language on them. And now, while a slightly limited (before the official release) version of the Wolfram Language is already supplied with a standard operating system for each



Raspberry Pi . It’s quite convenient: to have a device for $ 25 that works with the Wolfram language and connects to sensors, sensors, etc. And each such small computer appears just like another symbolic object in the Wolfram language. At the same time, it’s quite simple, say, to use the capabilities of Wolfram’s built-in parallel computing to extract data from many such machines. Looking to the future, you can expect to see the Wolfram language on a large number of embedded processors. There is another kind of embedding that interests us too. This is an embedding in software. We want us to have a Universal Deployment System for the Wolfram Language.


If we have a ready-made program in the Wolfram Language, then we have many ways of its distribution and implementation.
Here, for example, the ability to call Wolfram code from other programming languages.
We have a really easy way to do this. Usually there is a GUI, but in Wolfram, you can just take an API function and say: create code to insert this function into Python or Java code or whatever. Then you can paste this code into your external program, and it will call Wolfram Cloud for calculations. In fact, there are ways to do this inside the IDE, such as in the Wolfram Workbench .



These kinds of things are really easy to create and, as I said, they just call Wolfram Cloud to execute Wolfram language code. But there is also another concept. There is an Embedded Wolfram Engine which you can use locally. In this case, essentially the same code will work, but in this case it will be run on your local machine, and not in the Cloud. It becomes very interesting the possibility of embedding the Wolfram Embedded Machine in all types of software, which immediately adds all the capabilities of the algorithms, curated databases, understanding of the natural language available in the Wolfram Language to this software. Here's what, say, the Wolfram Embedded Machine inside the Unity Game Engine IDE looks like :
Ok, talking about embedding, let me mention one more part of our technology stack. Wolfram is believed to describe the world. The same applies to the description of devices, machines, and so on.
In this regard, it is very convenient that we have a product that can work with our Mathematica system, called SystemModeler, and performs large-scale system modeling and simulation. Now it also integrates into the Wolfram language. So, let's say, here is a rectifier circuit: And that’s all it takes to simulate this device. And display the parameters of this model:




And there is one more thing. We create functionality to use the natural language understanding abilities we created for Wolfram | Alpha, and we make them customizable. Now this is of course important for those who handle database queries or device management. It will also be interesting for those who interact with models. Say, look at a car working on the street and be able to get a lot of information about it upon request to the mobile application about it, and then run a simulation of its work in the Cloud.
There are many possibilities. But well, how can people use them? Over the next few weeks, a sandbox on the Internet will open for anyone who wants to try Wolfram Language. We have a gallery of examples, which gives a first impression and serves as a good start. Also, over 100,000 ready-made examples of interesting codes are available for you, which are in the documentation of the Wolfram Language . Wolfram Programming Cloud is also coming out very soon. It will be completely free to start working in it and implement the simplest ready-made applications. So what does this mean? I think this is quite exciting. Because I believe that we actually changed our approach, moved from algorithmic ideas to the implementation of finished products. If you pass by our exhibition

taking place as part of the festival, you will see how we program live. And quite possibly, we can even create small products right on the spot for those who wish. But I believe that our Programming Cloud will lead to an increase in algorithmic startups. It will be really interesting to see what happens.
Another thing that I think will change: programming training. I believe Wolfram is exceptionally good for education. Because it is a language in which you can do real things surprisingly easily. You can see the calculations in business in a variety of areas and observe their power. And, by the way, without much effort you can get acquainted with a bunch of modern ideas from the field of modern computer engineering and technology ... and all this in direct connection with the real world.
The ability to use natural language makes it very easy to get started. For serious programmers , I believe that having the ability to program in a natural language in those places where you plan to connect to the real world is very powerful. But for beginners, it will really be nice to have the opportunity to create things just in a regular language.
For example, we can simply write the following - draw a pink dodecahedron (build a pink dodecahedron):

And now we already have the automatically generated code.
We, in Wolfram Research, are extremely interested in educational opportunities. We have enough material for hundreds of thousands of great hackathon projects.
You know, every summer, for more than a dozen years, we organize an extremely successful summer school dedicated to the New Kind of Science, on which I myself worked for a long time. There we are successfully engaged in real-time science. Also, a summer camp for high school students has been operating for several years. We use our experience to create many uses for the Wolfram language in teaching programming. For over 25 years we have been working closely in the field of education. Here Mathematica is incredibly widespread. And I'm happy that Wolfram | Alpha has become a kind of universal tool for students. Coming even more interesting. For example, the Chinese version of Wolfram | Alpha is almost ready. And here is the Problem Generator



(Task Generator) created using the Wolfram Language and available in the Pro version of Wolfram | Alpha . We are going to add the possibility of implementing the full range of possibilities for analyzing the educational process, using our Cloud system. You know, there are so many possibilities. As, for example, with our CDF format - Computable Document Format ( Format of Computed Documents) - which has been used for several years to create interactive Demos . By the way, here is our website containing about 10,000 ready-made Demos.


Now, with our Cloud system, we can launch any of them directly in the browser using the Cloud CDF, so they can be easily integrated into the network educational environment. An example of this is the recently launched project from Versal .

On the other hand, from the point of view of other areas, besides education, a lot is happening in the corporate sphere. For several years, we have been developing full-scale custom-made complexes based on our Wolfram | Alpha platform. But now with the advent of the Data Science Platform, we will get, in fact, an unlimitedly modified version of these features. And of course, all this is integrated between the desktop and cloud versions. We are also going to create private cloud services.
But this is only the beginning. Since what we got with the Wolfram Language technology stack is a kind of universal platform for creating turnkey solutions. And we already have a whole range of such solutions on the way. It's just unbelievable to watch how what we have been working on for 25 years has been put together in this way.
Of course, for our small private company of about 700 talented people, this is a great test - to cope with all the prospects.
We started to promote companies. Such as Touch Press , which makes e-books for the iPad. We have a lot of plans in mind, and we need more entrepreneurs and investors working with us. Well, what about the more distant future?

I have been thinking about this for a long time. Now I have too little time to say about everything. So I will tell only about a small part.
We are trying to take all the knowledge of our civilization and turn it into a computable form. So that we can use them everywhere. For example, at Wolfram | Alpha, we essentially do calculations on demand. You ask for something, and Wolfram | Alpha does it. Further more. We are going to make predictive calculations, and, with the help of the Wolfram Language, we have done a lot to get closer to this. Imagine being able to model the whole world, and predict what will happen in the future. Tell you what you would like to do in your next step. Now, whenever you use the Wolfram Language, you always see this little panel

Suggestions for Further Actions of the Predictive Interface , which uses fairly nontrivial calculations to offer you what can be done next.

But the real way to make it all work is to use knowledge of yourself. For a long time I was very passionate about personal analytics . Here, for example, is the 25-year history of my e-mail activity.

As machines have more sensors and memory than ours, the hints they give us will get better and better. And at a certain stage, the machines will seize the initiative, because people try to stick to the automatic prompts that they are given.
But here is what I recently realized. I am interested in history and visited the archives of Gottfried Leibnizwho lived 300 years ago, but even then had many modern ideas about computing. But in his time the only thing he had was a very primitive calculator, which he himself constructed. Today, billions of computers work. So I thought about extrapolating. And I realized that at some point we will not just have a lot of computers - literally everything will contain computers. Biologists are already a little imbued with this idea. But once it will not make sense to create any of the “stupid” materials, instead everything will be made of fully programmable structures.

What does this mean for us? Well, of course, this blurs the line between software and hardware. And it also means that the languages that we create will become part of what everything will be made of. For a long time I was interested in fundamental physical theory . And, in fact, the research that I conducted allows me to think that there is a real possibility that we finally found a new approach that will allow us to get this theory. In fact, this approach is that our physical Universe can be found in the computing Universe of all possible Universes.

There is an interesting point in all of this: one day, everything will probably contain computers. Of course, when this happens it will still be great to discover a certain fundamental physical theory, I would like to do it even then, but this discovery will no longer matter, because, in essence, physics is a machine code (programming language) of the Universe, and everything that we deal with will already be at the level that we can program as we like.
So what does all this mean for humanity? Without a doubt, we will be able to bring to life this world in which programming will go further than what is happening now in biological objects. You can actually create any universe for yourself. I imagine the moment when a repository containing trillions of such entities appears. Each of which launches any fragment of the computing universe that it wants.
And what will happen next? A lot of calculations will be done. From studies that I conducted, and, in part, from the Principle of Computational Equivalence- I think this all resembles the situation in which Copernicus found himself. It seems to me that there is no serious difference between these calculations and what happens in the Universe, or even in much smaller programs.
From a certain point of view, the only feature of this repository of trillions of entities is that it is based on our specific history. Now, as you know, I have to deal with all these technical things, but it turned out that I love working with people; I think that’s why I decided to create a company and be the leader of many people. In a sense, observing how much becomes possible, and how much can be generalized and virtualized using technology, actually makes me think that people are becoming more important than ever. After all, if everything is possible, then the important is determined only by what a person wants or chooses.
This is a bit of a gigantic version of what we do with Wolfram. Humanity sets goals, and technology automatically tries to achieve them. And the more we try to attract computing to all areas of knowledge, the more this all becomes possible. And you know, I believe that the widespread adoption of computing will definitely be a determining factor in our time in history.
I must say that I am very glad that I live at the very time when I can bring something to this cause. This is a great honor and joy for me. And I am also very glad that today I had the opportunity to tell you a little about it.
Thanks so much for your attention!
NOTE 1
Rule 30- this is essentially a logical function of three arguments, which has the form: p XOR (q OR r). It can be represented in the form of 8 rules, according to which the triples of the cells of the upper tier are transformed into the lower one (see the figure below). The starting line - the first on top - contains one black square (True) and a set of white squares (False), infinite in both directions. The central column generates a qualitative sequence of pseudorandom numbers and it is on this rule that the default method for generating pseudorandom numbers in the Mathematica system is built.

NOTE 2
The name Mathematica was coined by Steve Jobs. Prior to this, Stephen thought of calling the system differently:

NOTE 3
After his release, Stephen Wolfram’s book became a bestseller and created an avalanche of media discussion. The book contains a large amount of rare and valuable information, from the use of cellular automata for solving hydrodynamic problems and systems for automatically proving mathematical theorems to understanding the design of the pattern on the shells of cowry mollusks.
NOTE 4
Video introduction by Stephen Wolfram to Wolfram
Original video
NOTE 5
Getting Started with Wolfram Cloud
Original video The
translation was done by the participants of the Russian-speaking Wolfram Mathematica support : Egor Rukin , Vladislav Glagolev , Sylvia Torosyan , Alik Klimenkov , Roman Osipov .
You can find the original text here .

Two weeks ago, I gave a speech at the SXSW conference in Austin, Texas. This article is a slightly modified thesis of the report (this is a compendium of the text, including demonstrations that had to be abandoned in the process of speaking) :
So, quite a lot has been planned for this hour.
In general, I would like to tell a story that has been happening to me over the past 40 years, which is beginning to bring amazing results only now. I mean, we can practically observe these results today. For the first time, I would like to introduce you to the whole range of technologies, which is a rather significant result of these forty years of work. And I think this is important enough.
I always liked to present programs live. But today I'm going to risk more than usual and demonstrate many things that are still at the testing stage. I hope that at least most of them work.
So, the main task is to start taking computing seriously. Understand the idea of computing as such, and then create a technology that allows them to be implemented everywhere - and then see where it leads.
You could say I have been chasing this idea for 40 years. I have been balancing for a long time at the intersection of science and technology - I create ever-larger building blocks and build from them an ever higher tower. And every few years I manage to see where it will grow further. In my opinion, it turns out great. However, something surprising has happened in the last few years - a kind of great unification that leads to the technological Cambrian explosion . And today, for the first time, I will partially introduce it to you.
But, for starters, a little history. 40 years ago, I was a 14-year-old boy who first touched a computer (it was then the size of a table). I did not often use it as something fundamental, but I tried to understand some things from physics with it.that really interested me. At that moment I discovered some important things that I still use. But now I understand that the most important thing that I understood then was not related to physics at all: the better the tools we use, the deeper we can dig. “Mathematics on paper” was not very good for me, but at that time it was a serious problem for those who wanted to study physics. However, I realized that the calculations can be done on the computer and began to create tools for this. Very soon, with my programs, I was the best in mathematical calculations for physics.
We will return to the year 1981. This year something amazing happened for a 21-year-old scientist - I turned all this into my first product and my first company. The important thing is that it made me realize that software products can stimulate intellectual thinking. It was necessary to figure out how to create a language for mathematical calculations on a computer, and it took me a lot to understand about computing in order to achieve the goal. And then I again plunged into the foundations of science already using the created tools.
In the end, I realized that while mathematics is doing well, its fundamental concept needs to be generalized. I began to study the whole universe of all kinds of formal systems, which is essentially a universal computing universe of possible programs. I set up small experiments - as if I were directing my computing telescope to parts of this universe and watching what was there. What I saw was amazing. Below I will show you some simple programs.
Some do very simple things, but there are some that, with seeming simplicity, do amazingly complex things.

This is my favorite program, because I saw it first in this class of programs. She’s called rule 30, and 30 years later she’s still on the back of my business cards. ( See note 1 at the end. )

The simplest program. The simplest initial condition. But she is doing something crazy. It creates complex structures from nothing, which is a rather interesting phenomenon. It seems to me that it reflects the great secret of how nature works. And yes, I spent many years studying this - an insanely interesting activity.
But in the process of studying these things, I realized that I needed more advanced tools than those that I had. And, basically, therefore, I created Mathematica. It’s a little ironic that the name of the program is the word “mathematics”. Because it was originally conceived to expand the boundaries of classical mathematics. The main super idea is to get to the bottom of mathematics and find its computational foundation on which everything will be built. I managed to do this in the language of the Mathematica system. Over the years, he showed himself perfectly, and we constantly supplemented and refined it. ( See note 2 at the end. ) In fact, Mathematica celebrated its 25th anniversary last year.

. For 25 years, it was used to invent, discover and study countless things in a huge number of universities, large companies and similar organizations around the world. I myself managed to work with Mathematica for about 10 years for my own research. I discovered a lot of interesting things in the field of science, technology and philosophy and wrote a book about it called " New Kind of Science " (A New Kind of Science) . ( See note 3 at the end. )

But let's go back to the past: when I was a teenager, I was really interested in one thing - the systematization of information. And it seemed to me that the day would come when a person could create a system that could automatically answer questions about almost everything. By that time, I had found out a lot about how to automate the process of answering questions related to mathematics. But I wanted to somehow generalize this opportunity to answer any questions. Our world needs something like universal artificial intelligence like a human brain. And this task already seemed very difficult.
Every 10 years or so, I come back to this idea and come to the conclusion that, yes - it is still very difficult. But while I was doing my research, I realized something important: sometimes the execution of even a very simple program can produce structures that are similar in complexity to the human brain.

In fact, there is not much difference between the brain-like intelligence and these structures. The consequences of such thinking are the dilemma between free will and predestination , as well as the search for extraterrestrial intelligence . However, such programs made me realize that to answer many different questions it is not necessary to create artificial intelligence similar to the brain. Conventional calculations, like the ones that underlie Mathematica, may be enough.
I was not sure that now is the right decade or even the right age for this, but the advantages of owning a small company allowed me to conduct an experiment. Now I am happy to state that, as it turned out, the task was not so difficult - we created Wolfram | Alpha . You enter something there in a natural language, and the system uses the full power of the data, knowledge, methods and algorithms embedded in it to simply generate a report of what you asked. Yes, by the way, if you use Wolfram | Alpha, you should have noticed that yesterday the Wolfram | Alpha web interface acquired a new elegant look. Wolfram | Alpha knows a lot about it. Thousands of fields of knowledge and quintillions of data particles cover in truth a huge area of knowledge available to mankind.


And in fact, every day, many millions of people ask the system about a variety of things - directly on the site, through mobile applications and through technologies such as Siri, which also knows how to access Wolfram | Alpha.
So, what do we have: Mathematica, which has become the foundation for a language for describing and performing any technical calculations. And we also have Wolfram | Alpha, which knows everything about our world and interacts with which it uses an extremely ambiguous natural language. Well, Mathematica has grown over 25 years, and Wolfram | Alpha is only 5. We are constantly inventing new ways to expand the main directions of these systems further and further. But now something truly global and incredible has happened. And for me personally, a completely different area has become a catalyst for this: cloud technology.
Then it seemed to me that the Cloud was not bringing something qualitatively new - I thought it was just practical. But I was wrong. Now, finally, I understand that this is the same detail that allows us to combine two global approaches to computing (Mathematica and Wolfram | Alpha) to make this something much more global.
Now I have to admit that the result of all this has considerable intellectual complexity. However, it is extremely practical. I've always liked situations where big ideas lead to truly useful innovative products, as is the case with Wolfram Research. We have taken one super idea and are making many (hopefully useful) products. At some level, describing each product is quite simple, but the most exciting thing is what they are together. And I would like to talk about this today. But, I will say in advance - although this story seems to me extremely important, it is not at all easy to tell.
But, the main thing is to start. At the core of everything is what we call the Wolfram Language . We are only just beginning to release it a little. ( See note 4 at the end.) The core of the Wolfram Language has been “grown” in Mathematica for over 25 years. There it was perfectly tested, and now we add all the new ideas and technologies from Wolfram | Alpha and from the Cloud . This allows us to move to a new quality level. I am absolutely delighted with this. The idea is to create a knowledge-oriented language. A language in which a huge amount of knowledge about computing and about our world is embedded. The fact is that most programming languages focus on basic machine operations. They provide many great ways to manage executable code. Sometimes they have libraries for specific things.

But our idea of the Wolfram Language is the exact opposite - to create a language in which as much is embedded. Where the language itself can do as much as possible. Where everything is automated as much as possible.
Ok, let's look at how it works.
You can use the Wolfram language fully interactively using the laptop interface that we created for Mathematica.
Ok, everything is clear here. Let's do something a little more complicated:

Yes ... it's a big number. It looks almost like a bunch of random numbers, similar to, say, 60 thousand points taken from some sensor. How can we analyze them? Everything that may be required is already built into the Wolfram language.

So, say, we can calculate the average value accurately and approximately: We can calculate the asymmetry coefficient: Or hundreds of other statistics, tests, or visualizations. This dependency looks a little strange indeed. But let me not go into details now, explaining this effect. Good. Here is something completely different. Let's allow Wolfram to access some Facebook user account and retrieve the graph of his friends : Okay, we got the graph, what's next? Wolfram knows how to work with graphs and networks. Let's say let's calculate its breakdown into communities: Let's try something else. Now we get the image from my small camera:





So we got it. Now let's do something with it. We can just take this image and put it in some function: We got an image broken into small pieces. Let's make it interactive: Now, turn each of the fragments to a certain angle: Now, let's sort them by color. We can make in this way some funny application that outputs a table of fragments: Ok, this is quite funny. Why don't we post it on our Twitter?






OK. In fact, the whole point is that the Wolfram language simply inherently knows a lot. He knows how to analyze graphs and networks. He knows how to work with images, performs the most sophisticated algorithms for processing them. Wolfram also knows about the world around it. For example, we could ask him when the sun rose this morning in the place where we are: Or the time between sunrise and sunset today: Or we could get the current air temperature where we are now: Or a graph of the temperature versus time over the past day:



This language is actually a very large object and, based on what we have done for Wolfram | Alpha, it can also answer many questions in the form of a natural language. And what is really powerful is that we can use it to refer to objects in the real world.
Let's just enter “Ctrl” + “Shift” + “=” + “nyc” (the first three keys are just needed to launch the free input interface):

And this design is converted to the “New York City” object. So now we can find the temperature difference where we are in New York: Ok. Let's do something more complicated, find countries bordering Ukraine: Now find the lengths of the borders of these countries: And create a table from the data:




Or, maybe we’ll make a cloud of country names, and we’ll associate the size of each name with the length of the corresponding border: Or we can find all the former republics of the USSR: And display their flags: Now, let's find a flag which of the countries is closest to the French: Pretty simple, don’t is not it? Or, let's take the first few former Soviet republics and create maps of their capitals, on which we mark a circle with a radius of 10 miles: I think it’s pretty surprising that you can do this kind of thing right inside the programming language, with just one line of code. And, you know, there are a huge number of areas of knowledge built into the Wolfram language. We have been creating all this for more than a quarter of a century.







The language has knowledge of both algorithms and the world.
There are two great principles in it . First, maximum automation - automate as much as possible. You ask what you want the language to do, and it will figure out how to do it. There may be hundreds of algorithms for doing something in various cases. But what we want to do is the meta-algorithm, which itself chooses the best way to do this. Thus, all that a person has to do is to determine his goals, after that it’s up to a system that will strive to solve the problem in the fastest, most accurate and most beautiful way.
For example, there is a Classify functionwhich classifies data by performing the classic machine learning task. You simply type Classify and put in it a small training set of uppercase numbers (images) and values that correspond to them: At the output, you get a classifier. We can apply it to what we just drew: Well, well, here's another important thing about the Wolfram language: it's the consistency and uniformity of everything. We strive to ensure that everything in the language is combined with each other. Even though it is a huge system, if you do something with geographic data in it, we make it ideally suited to what you do with graphs and networks. I spent a decent part of the last 25 years of my life creating a rigorous system design


which is required to implement these concepts. It was fun, but it was hard work. Spending all this time to make things obvious, so that the language is easy to learn, remember and to guess about some function, if you do not even know if it is. But you know, due to the fact that all the available building blocks of the language are so well suited to each other, we are witnessing the emergence of new powerful algorithms. And we had a great time inventing thousands and thousands of new algorithms that became possible only in our language, in which we have all these different areas connected to each other.
And in fact, there is one really fundamental idea, thanks to which we were able to implement this kind of integration. It lies in the fact that the Wolfram language has the main fundamental feature - it is a symbolic language. If you simply type x into the language, it will not throw an error that x is undefined. x is just something, the symbol x is something the language can work with. Of course, this is very good for math. But, to my surprise, one of the great discoveries of the idea of symbolic language is that the same concept can be applied to countless other objects and areas of knowledge. Everything in our language is a symbolic object. Be it mathematical expressions: or objects such as Austin, TX (Austin, Texas): Or, say, graphic primitives, let's say a sphere:



And here is a collection of cylinders: Since all this is just symbolic expressions, we can take any of them and, if we want, do some morphological processing of the image, for example, search for the boundaries of objects: you know, everything is just a symbolic expression. Another example is graphical interfaces. Here is a symbolic slider: Here is a collection of sliders: You know, since everything is a symbolic expression, it gives you tremendous freedom. Here is the sequential application of the function f to the expression: Here is the sequential application of the function called Framed, which frames the expression at the output: And here is a completely similar character construction based on the simplest graphical interface:







Ah ... my goodness ... it's a fractal interface!
You know, since all objects are symbolic, it’s really easy to do anything. Say, here is a three-dimensional graph of a parametrically defined function: Now, in one movement, make it interactive: You can do the same with anything: Ok. Another class of objects that are symbolic is documents. The document in which I am currently typing is another symbolic expression. And you can create in it everything that you want symbolically. Let's say this is some text. If we want, we can rotate it at an arbitrary angle: Everything is just a symbolic expression.





OK. There is one more thing that is a symbolic expression - this is the code. Each piece of code in Wolfram is just a symbolic expression that you can take and work with it anytime, anywhere. This is extremely important for programming, as it means that you can create things in a modular way.
This is also important for another reason: this is a great way to work with the Cloud, which can be seen as a kind of gigantic active storage for parts of symbolic computing. In fact, we have already created all this infrastructure, which I am going to demonstrate here for the first time today. ( See note 5 at the end. )
Let's say we have a symbolic expression: Now we can just put it in the Cloud:



We received a symbolic CloudObject object with a URL at which we can go to this object from anywhere in the world. We crossed it and now we got our object.
Now let's make some program instead of this immutable object. On the Internet, it will be convenient to access it using the API. Thanks to our symbolic concept of everything, this operation can also be easily represented in this way. Now we can put this program in the Cloud: This way we got a direct API. Now we can simply append the API parameter at the end of the link, say? Size = 150 and get an answer, and it doesn’t matter from which place on the Internet we sent the request: And every time you do this, you will actually call this little Wolfram language code



Wolfram Cloud and get back the result of the calculations.
There is one more thing that can be done - create a form for user input. Just change APIFunction to FormFunction : Now what we got is already an input form: Let's add another input field that allows you to rotate the entered text by an arbitrary angle: Now let's enter some values into the input form: When we click on the Submit button we get the result: approx. Let's try another example. Here is a form that takes the names of two cities and draws a map showing the shortest path between them: Let's put this function in the Cloud: Now fill out the form:








And when we click on Submit, here is what we get:

Just one line of code and we actually got a ready-made small, but powerful, web application! Inside it lies a very powerful new technology. You see these input fields - they are what we call “smart input fields”, because they are able to understand the natural language :

If you specify what is not a city, then this will happen:

When you enter a city name, the system automatically interprets input as an object from many cities. Let me show you what's going on inside. Let's define a form that simply returns a list of the entered objects:

Now, if we enter the names of the cities, we simply get the symbolic objects of the Wolfram Language, which, of course, can then participate in the calculations: Okay, let's try something else. Let me show you an example of today's popular type of programming. Let's make a funny application that shows us images through the eyes of a cat or dog. Ok, let's create the simplest code base: Now let's create an algorithm that transforms the image according to how the dog would see it, convert the color channels and take into account visual acuity. Ok, let's now create an application based on this code: Now we can distribute this application. But first, create an icon for it:









And now let's make it a public application:

Now we ’ll go to the Wolfram Cloud application for iPad:

And in it we already see the application that we just published:

Click on the application icon. What we will see is a ready-made mobile application created using the Wolfram Language in the Cloud.

We can use the iPad camera to take a photo and then look at the result of its processing by our application:

Pretty good, isn't it?
Ok, but that’s not all. Let me tell you about the first product coming out of our Wolfram Language Technology stack. It will be available soon. We call it by Wolfram Programming Cloud (Cloud Programming Wolfram)

All the things that I'm showing you now are happening in the Cloud. Including programming. Of course, there is also a desktop version - the Wolfram Mathematica system.
Ok, so here is the Wolfram Programming Cloud:

You can create applications directly in the Cloud. Let's create a function and just use CloudDeploy []:

Or use the GUI (graphical user interface): You

can also take the CDF and put it in the Cloud.
Let's get some code from the Wolfram Demonstrations Project website. In fact, it so happened that this was the very first Demo that I did when the site was still being created.

Here is the complete Cloud CDF application.

It only requires a browser and since it works withWolfram Engine in the Cloud, it has arbitrary interactivity.
Ok, using this technology, we are creating another product - Data Science Platform . The idea is this: information comes from a variety of sources, and we have all the methods for its automated analysis using a kind of gigantic meta-algorithm, as well as the knowledge about the modern world that we have. This way you can program anything using the Wolfram Language and ultimately you can create a report. At your request, as from an API or application. Or just on schedule. You can also use CDF character documents to create these reports.

For example, here is a report template for the number of incoming messages on my inbox. It is created as a simple character document, so that I can easily edit it.

And then programmatically generate reports using it:

You know, there are really exciting things that we can do with information using our entire stack of symbol language technologies. We recently realized that we can use it to create a union and generalization of SQL and NoSQL databases. And we implemented this at four different, mutually transparent, levels: memory, files, databases, and dispersed information.
OK. On the other hand, we have a really good way of representing individual pieces of data. We call it WDF - Wolfram Data Framework(Wolfram Data Structure). Basically, WDF is a kind of algorithmic ontology that we created for Wolfram | Alpha - we know that it works - and we use it. WDF uses our natural language understanding tools to import unstructured data and automatically transform it into something structured and computable. Let's say our Data Science Platform does a good job of this.

Oh well. Here is something else. The fastest growing source of data in the world is the so-called connected devices, which are, in fact, a variety of sensors and robots that can transmit information to the network or share it in other ways. People are actually more and more closely associated with them. One thing I wanted to do recently was just to find out what devices of this type now exist. So we started the Connected Devices Project to oversee the devices that really exist at the moment, similar to how we supervise a variety of things in Wolfram | Alpha.

In our database now there are already about 2500 devices, and their number is growing every day. Of course, we use WDF to organize all this, and, of course, all this information is available through Wolfram | Alpha. OK. Thus, there are all these devices and they measure something and do something. And they all typically interact with the Internet. What we do - with our Data Science Platform and in general with everything - is the creation of a truly uninterrupted and flexible infrastructure for processing data from these devices or any other, in order to visualize, analyze and calculate everything that is available and comes to “The Internet of Things”.

You know, even for those devices that still do not know how to send data to the Internet, we have tools that help to work with them. For example, here's an accelerometer attached to an Arduino:

Let's see if we can enter data from this device into Wolfram Language. It’s not so difficult: Now we visualize this data: So, this is how devices can be connected to the Wolfram language. But there is something else. This is already an introduction of the Wolfram Language into devices. And this is the thing that pays off 25 years of hard software engineering, because, just as devices run things like Linux, we can run Wolfram language on them. And now, while a slightly limited (before the official release) version of the Wolfram Language is already supplied with a standard operating system for each



Raspberry Pi . It’s quite convenient: to have a device for $ 25 that works with the Wolfram language and connects to sensors, sensors, etc. And each such small computer appears just like another symbolic object in the Wolfram language. At the same time, it’s quite simple, say, to use the capabilities of Wolfram’s built-in parallel computing to extract data from many such machines. Looking to the future, you can expect to see the Wolfram language on a large number of embedded processors. There is another kind of embedding that interests us too. This is an embedding in software. We want us to have a Universal Deployment System for the Wolfram Language.


If we have a ready-made program in the Wolfram Language, then we have many ways of its distribution and implementation.
Here, for example, the ability to call Wolfram code from other programming languages.
We have a really easy way to do this. Usually there is a GUI, but in Wolfram, you can just take an API function and say: create code to insert this function into Python or Java code or whatever. Then you can paste this code into your external program, and it will call Wolfram Cloud for calculations. In fact, there are ways to do this inside the IDE, such as in the Wolfram Workbench .



These kinds of things are really easy to create and, as I said, they just call Wolfram Cloud to execute Wolfram language code. But there is also another concept. There is an Embedded Wolfram Engine which you can use locally. In this case, essentially the same code will work, but in this case it will be run on your local machine, and not in the Cloud. It becomes very interesting the possibility of embedding the Wolfram Embedded Machine in all types of software, which immediately adds all the capabilities of the algorithms, curated databases, understanding of the natural language available in the Wolfram Language to this software. Here's what, say, the Wolfram Embedded Machine inside the Unity Game Engine IDE looks like :
Ok, talking about embedding, let me mention one more part of our technology stack. Wolfram is believed to describe the world. The same applies to the description of devices, machines, and so on.
In this regard, it is very convenient that we have a product that can work with our Mathematica system, called SystemModeler, and performs large-scale system modeling and simulation. Now it also integrates into the Wolfram language. So, let's say, here is a rectifier circuit: And that’s all it takes to simulate this device. And display the parameters of this model:




And there is one more thing. We create functionality to use the natural language understanding abilities we created for Wolfram | Alpha, and we make them customizable. Now this is of course important for those who handle database queries or device management. It will also be interesting for those who interact with models. Say, look at a car working on the street and be able to get a lot of information about it upon request to the mobile application about it, and then run a simulation of its work in the Cloud.
There are many possibilities. But well, how can people use them? Over the next few weeks, a sandbox on the Internet will open for anyone who wants to try Wolfram Language. We have a gallery of examples, which gives a first impression and serves as a good start. Also, over 100,000 ready-made examples of interesting codes are available for you, which are in the documentation of the Wolfram Language . Wolfram Programming Cloud is also coming out very soon. It will be completely free to start working in it and implement the simplest ready-made applications. So what does this mean? I think this is quite exciting. Because I believe that we actually changed our approach, moved from algorithmic ideas to the implementation of finished products. If you pass by our exhibition

taking place as part of the festival, you will see how we program live. And quite possibly, we can even create small products right on the spot for those who wish. But I believe that our Programming Cloud will lead to an increase in algorithmic startups. It will be really interesting to see what happens.
Another thing that I think will change: programming training. I believe Wolfram is exceptionally good for education. Because it is a language in which you can do real things surprisingly easily. You can see the calculations in business in a variety of areas and observe their power. And, by the way, without much effort you can get acquainted with a bunch of modern ideas from the field of modern computer engineering and technology ... and all this in direct connection with the real world.
The ability to use natural language makes it very easy to get started. For serious programmers , I believe that having the ability to program in a natural language in those places where you plan to connect to the real world is very powerful. But for beginners, it will really be nice to have the opportunity to create things just in a regular language.
For example, we can simply write the following - draw a pink dodecahedron (build a pink dodecahedron):

And now we already have the automatically generated code.
We, in Wolfram Research, are extremely interested in educational opportunities. We have enough material for hundreds of thousands of great hackathon projects.
You know, every summer, for more than a dozen years, we organize an extremely successful summer school dedicated to the New Kind of Science, on which I myself worked for a long time. There we are successfully engaged in real-time science. Also, a summer camp for high school students has been operating for several years. We use our experience to create many uses for the Wolfram language in teaching programming. For over 25 years we have been working closely in the field of education. Here Mathematica is incredibly widespread. And I'm happy that Wolfram | Alpha has become a kind of universal tool for students. Coming even more interesting. For example, the Chinese version of Wolfram | Alpha is almost ready. And here is the Problem Generator



(Task Generator) created using the Wolfram Language and available in the Pro version of Wolfram | Alpha . We are going to add the possibility of implementing the full range of possibilities for analyzing the educational process, using our Cloud system. You know, there are so many possibilities. As, for example, with our CDF format - Computable Document Format ( Format of Computed Documents) - which has been used for several years to create interactive Demos . By the way, here is our website containing about 10,000 ready-made Demos.


Now, with our Cloud system, we can launch any of them directly in the browser using the Cloud CDF, so they can be easily integrated into the network educational environment. An example of this is the recently launched project from Versal .

On the other hand, from the point of view of other areas, besides education, a lot is happening in the corporate sphere. For several years, we have been developing full-scale custom-made complexes based on our Wolfram | Alpha platform. But now with the advent of the Data Science Platform, we will get, in fact, an unlimitedly modified version of these features. And of course, all this is integrated between the desktop and cloud versions. We are also going to create private cloud services.
But this is only the beginning. Since what we got with the Wolfram Language technology stack is a kind of universal platform for creating turnkey solutions. And we already have a whole range of such solutions on the way. It's just unbelievable to watch how what we have been working on for 25 years has been put together in this way.
Of course, for our small private company of about 700 talented people, this is a great test - to cope with all the prospects.
We started to promote companies. Such as Touch Press , which makes e-books for the iPad. We have a lot of plans in mind, and we need more entrepreneurs and investors working with us. Well, what about the more distant future?

I have been thinking about this for a long time. Now I have too little time to say about everything. So I will tell only about a small part.
We are trying to take all the knowledge of our civilization and turn it into a computable form. So that we can use them everywhere. For example, at Wolfram | Alpha, we essentially do calculations on demand. You ask for something, and Wolfram | Alpha does it. Further more. We are going to make predictive calculations, and, with the help of the Wolfram Language, we have done a lot to get closer to this. Imagine being able to model the whole world, and predict what will happen in the future. Tell you what you would like to do in your next step. Now, whenever you use the Wolfram Language, you always see this little panel

Suggestions for Further Actions of the Predictive Interface , which uses fairly nontrivial calculations to offer you what can be done next.

But the real way to make it all work is to use knowledge of yourself. For a long time I was very passionate about personal analytics . Here, for example, is the 25-year history of my e-mail activity.

As machines have more sensors and memory than ours, the hints they give us will get better and better. And at a certain stage, the machines will seize the initiative, because people try to stick to the automatic prompts that they are given.
But here is what I recently realized. I am interested in history and visited the archives of Gottfried Leibnizwho lived 300 years ago, but even then had many modern ideas about computing. But in his time the only thing he had was a very primitive calculator, which he himself constructed. Today, billions of computers work. So I thought about extrapolating. And I realized that at some point we will not just have a lot of computers - literally everything will contain computers. Biologists are already a little imbued with this idea. But once it will not make sense to create any of the “stupid” materials, instead everything will be made of fully programmable structures.

What does this mean for us? Well, of course, this blurs the line between software and hardware. And it also means that the languages that we create will become part of what everything will be made of. For a long time I was interested in fundamental physical theory . And, in fact, the research that I conducted allows me to think that there is a real possibility that we finally found a new approach that will allow us to get this theory. In fact, this approach is that our physical Universe can be found in the computing Universe of all possible Universes.

There is an interesting point in all of this: one day, everything will probably contain computers. Of course, when this happens it will still be great to discover a certain fundamental physical theory, I would like to do it even then, but this discovery will no longer matter, because, in essence, physics is a machine code (programming language) of the Universe, and everything that we deal with will already be at the level that we can program as we like.
So what does all this mean for humanity? Without a doubt, we will be able to bring to life this world in which programming will go further than what is happening now in biological objects. You can actually create any universe for yourself. I imagine the moment when a repository containing trillions of such entities appears. Each of which launches any fragment of the computing universe that it wants.
And what will happen next? A lot of calculations will be done. From studies that I conducted, and, in part, from the Principle of Computational Equivalence- I think this all resembles the situation in which Copernicus found himself. It seems to me that there is no serious difference between these calculations and what happens in the Universe, or even in much smaller programs.
From a certain point of view, the only feature of this repository of trillions of entities is that it is based on our specific history. Now, as you know, I have to deal with all these technical things, but it turned out that I love working with people; I think that’s why I decided to create a company and be the leader of many people. In a sense, observing how much becomes possible, and how much can be generalized and virtualized using technology, actually makes me think that people are becoming more important than ever. After all, if everything is possible, then the important is determined only by what a person wants or chooses.
This is a bit of a gigantic version of what we do with Wolfram. Humanity sets goals, and technology automatically tries to achieve them. And the more we try to attract computing to all areas of knowledge, the more this all becomes possible. And you know, I believe that the widespread adoption of computing will definitely be a determining factor in our time in history.
I must say that I am very glad that I live at the very time when I can bring something to this cause. This is a great honor and joy for me. And I am also very glad that today I had the opportunity to tell you a little about it.
Thanks so much for your attention!
NOTE 1
Rule 30- this is essentially a logical function of three arguments, which has the form: p XOR (q OR r). It can be represented in the form of 8 rules, according to which the triples of the cells of the upper tier are transformed into the lower one (see the figure below). The starting line - the first on top - contains one black square (True) and a set of white squares (False), infinite in both directions. The central column generates a qualitative sequence of pseudorandom numbers and it is on this rule that the default method for generating pseudorandom numbers in the Mathematica system is built.

NOTE 2
The name Mathematica was coined by Steve Jobs. Prior to this, Stephen thought of calling the system differently:

NOTE 3
After his release, Stephen Wolfram’s book became a bestseller and created an avalanche of media discussion. The book contains a large amount of rare and valuable information, from the use of cellular automata for solving hydrodynamic problems and systems for automatically proving mathematical theorems to understanding the design of the pattern on the shells of cowry mollusks.
NOTE 4
Video introduction by Stephen Wolfram to Wolfram
Original video
NOTE 5
Getting Started with Wolfram Cloud
Original video The
translation was done by the participants of the Russian-speaking Wolfram Mathematica support : Egor Rukin , Vladislav Glagolev , Sylvia Torosyan , Alik Klimenkov , Roman Osipov .