NKS 2007 Opening Keynote
This talk was given as the keynote at the NKS 2007 Conference in Burlington, Vermont.
Welcome to the 2007 NKS conference. It's nice to see both familiar faces and new faces here today.
I'm really looking forward to this weekend. I think we're going to have both some very interesting formal presentations, and a lot of opportunity for informal interaction.
It's kind of a nice feature of still having such a comparatively small group. There's opportunity for complete mixing, across the very diverse backgrounds and interests of everyone here.
Well, as of May 14 this year, it's five years since I published the NKS book.
And I said in the book that I expected it would take many decades for NKS to develop.
But I'm happy to say that I think right now we're in many ways ahead of the curve I expected.
This is a great time in the history of NKS; many things are just starting to gel in wonderful ways.
I wanted to do two things here today. I want to talk a bit about how I see NKS now—five years out.
And I want to talk about the future: where I see NKS going... both in terms of content, and in terms of its place in the world and its organization.
So let's start by talking about NKS, and what it's about.
I spent 10 years working very hard on the NKS book. And I intended it to be a long-term book. And I'm happy to say that 5 years out, there's nothing significant I would change about it.
But I've been thinking about the core ideas of NKS for a little more than 25 years now. And somehow every year they sink in a little more. And I get to understand a little more about what their significance is.
When I started working on NKS, I really started from a traditional scientific paradigm. Of trying to find formal models for the natural world.
And what I realized was that there was a vast expansion of those models that could be made. Going beyond three centuries of traditional mathematics. And looking instead at the more general kinds of models that can be represented by programs.
But increasingly I've realized that it's that computational universe of possible programs that's ultimately the most important thing.
Yes, the programs can be used as models, and that's an important application.
But ultimately the most important intellectual contribution of NKS is simply to recognize the importance of exploring the abstract computational universe of possible programs.
It's what I call "pure NKS". The basic science of the computational universe.
It's a science that I suppose could have been started a thousand years ago—or more.
Because really all it's about is following rules. The way artisans have throughout the ages followed rules to create visual forms, or people have followed rules to play games, do calculations, whatever.
And indeed dotted throughout history are a wonderful sequence of instances where the key ideas of NKS were almost discovered.
But for various reasons they were missed. Most often mainly because they clashed with the reigning paradigm of traditional science.
I consider myself very fortunate to have come upon NKS.
It happened through a curious confluence of circumstances that began in the late 1970s.
As a physicist I was used to seeking fundamental explanations for things.
And as a creator of software systems I was used to the idea of abstract computational systems.
But it still took some years before I put these together. And did the key computer experiments that launched me in the direction of NKS.
My first experiments, as most of you know, involved systems called cellular automata.
And when I actually did those experiments, I was printing out images of cellular automaton behavior on a line printer—on those big sheets of paper that probably the younger of you have never even seen.
Well, just to kind of tweak history a bit... here's what I would have liked to be doing in my various first experiments.
Of course, this is like an artifact from the future. This is our latest Mathematica technology.
Here's what happens. This runs the simplest kind of cellular automaton.
With rules represented by those icons at the bottom there.
And as I move this slider, the rule changes.
Sometimes the results are really simple.
We're getting what we might expect: a simple rule producing simple behavior.
But there's a lot of diversity.
And what's remarkable is that even among these very simple rules, there's amazingly complex behavior.
Like my favorite, rule 30.
I first saw this in 1984. And I thought it was important then.
But it took me years to realize just how important. And I think it's still sinking in now.
Well, back in the early 1980s, I studied cellular automata a lot. Figured out some pretty interesting things.
And realized that phenomena like "complexity" really were basic things—that could be studied independent of the details of the systems in which they occurred.
Well, that just made me more interested in really drilling down to find the basic science underneath what I was seeing.
But I knew I needed better tools to do that.
And that's one of the main reasons I built Mathematica.
To have—sort of—my telescope to explore the computational universe.
Well, that worked out better than I could possibly imagine.
And when I turned Mathematica out into the computational universe I just started seeing all this amazing stuff.
I'm quite a student of the history of science.
And somehow from my experiences with Mathematica I've begun to think I can tell what it must have felt like for Galileo when he first turned a telescope to the sky.
And immediately started seeing things like the mountains on the moon, or the satellites of Jupiter.
Well, of course, the things Galileo saw were what in a sense launched the course of mathematical science that has dominated our directions in science for three hundred years.
Well, only time will tell for sure, but to me there seems to be a certain inevitability that the things we're doing with NKS will define a new course for science of similar magnitude.
And in a sense just like in the development of traditional science, some of the most important steps are methodological, and technological.
Which is part of why I have spent so much of my time developing tools.
Indeed, in the past couple of years I've been quite submerged in tool building.
And I'm happy to say that as of the beginning of May—just before the 5th anniversary of NKS—we finally finished a major milestone in tool development.
For ten years we had been working on a "reinvention" of Mathematica. Made possible by some major new ideas, as well as by the increasing general power computers.
Well, we finally finished the new Mathematica.
And it's again the same kind of excitement as with the very first version of Mathematica back in 1988.
It's suddenly possible to do all these new things.
For all sorts of purposes.
But notably for NKS—for exploring the computational universe.
Well, it's too early to say what will come from it. The first version of Mathematica let us take major steps in feeling out what happens in the computational universe.
Now, with our reinvention of Mathematica we can get—in a sense—even closer to the computational universe.
Being able to explore it in a truly interactive and dynamic way. Kind of feeling computational processes close at hand.
Well, so, there is a vast universe of possible programs to explore out there in the computational universe.
And there's a basic science to built from studying them. A science like a physics. Or a chemistry. But concerned with the computational universe.
We know some of the core principles of that science. Overall classifications of behavior. Concepts like computational irreducibility. Broad principles like the Principle of Computational Equivalence.
But there are many many details and specifics to fill in.
It's like the early days of something like chemistry. We know some of the common compounds. But there are zillions out there to study. With all sorts of special and interesting properties.
Or perhaps it's like the early days of natural history or biology. We know some of the species that inhabit the earth. But there are vastly more to find. With all their special, bizarre, and wondrous features.
One thing that's been exciting recently is the steady increase in the amount of pure NKS being done. In the studies of simple programs out in the computational universe that we see.
It's not yet a torrent, but it's more than trickle.
The torrent will come. Thousands of PhD theses studying particular systems. Exploring. Characterizing. Documenting what's out there in the computational universe.
That's one thing that's always great about fundamentally new directions in science.
They define not only new methods, but provide a new framework that shows why some whole new direction of investigation is interesting.
I think perhaps the thing I'm most excited about right now when it comes to the computational universe, though, is "mining it".
Looking at all those programs out there, and finding ones that are useful for different purposes.
It's a little bit like what's happened over the past many thousands of years with physical materials.
Out in the natural world, there are all these different materials. Iron ore. Amber. Diamond. Silicon. Sugar cane. Liquid crystals.
And over the course of time, we've learned how to make use of these things for our technology, our science, our art, and more.
Well, so it will be with the computational universe.
Over the course of time we'll figure out how to make use of all those programs out there.
In a sense, my original motivation about modeling the natural world was only a tiny slice.
We've already found lots of programs that are really useful in our efforts to model all sorts of aspects of the natural world.
But there's so much more that we can do with simple programs.
Creating things as well as just understanding and reproducing what's already there in nature.
Now, of course, there's still plenty to do in using simple programs to make models of nature.
Every year some more systems get modelled with simple programs.
And the rate has definitely been increasing substantially in recent years.
I think the most important point is just realizing that it's possible for simple programs—simple rules—to be good models of complex processes.
And in a sense that's just a consequence of one of the earliest, basic, NKS facts: that even very simple programs out in the computational universe can show rich and complex behavior.
There are many other things going on, though, too.
Like the fact that it's becoming possible to get much more detailed data on things.
Not just measuring one or two numbers. But getting images. And outputs from whole arrays of sensors and things.
Well, then there's no escaping the complexity of behavior in systems.
Now, sometimes there's a traditional mathematical model for a system.
Often some complicated partial differential equation or something.
But when the behavior is complex it's incredibly hard to work with those kinds of models. Even to do the numerical analysis and things to find out if one's getting the right answer.
And in fact, in systems with complex behavior, I think there's usually computational irreducibility at work—that makes it inevitable that one's going to have to do irreducible computational work to find out how the system will behave.
And that puts a lot of pressure on having the simplest possible underlying model—so one has the best chance to run it for the longest time.
Finding models is hard.
Especially simple ones. Where one doesn't get to tweak parameters to fit to every new piece of data one sees.
But I think there's been a definite trend in seeing more and more NKS-based simple programs being used for models.
Lots of cellular automata. Now some mobile automata. Some string and substitution systems. More and more network-based systems.
There's still a certain tendency towards model engineering, though.
Starting from the phenomena one's trying to model, and using essentially traditional engineering methods to—in a sense—build up a model.
Well, NKS suggests another, bizarre, way to find models.
Just search for them.
Of course, with traditional, complicated, models, this would be completely crazy.
But if the models one's using are simple enough—well then it becomes conceivable to just find them by searching.
Define what general properties one wants the model to have. And then just search for the model by exhaustively going through possibilities.
There've been some nice successes of this kind of approach. Quite a few of which were in the NKS book.
Not only in modelling systems in physics and biology and so on ... and in some other kinds of areas, like finding the simplest axiomatic model for logic—Boolean algebra.
But we're still only in the early days of search-based modelling.
In a sense, from what we've done in studying the basic science of the computational universe and its principles we're developing the analog of something like calculus, which lets us set up models and work out their consequences.
But now we have to do sort of the inverse: develop methodologies for going from phenomena to models.
With calculus-based models, we have traditional methods of statistics that do some of this—albeit rather weakly.
But with NKS, we need a new methodology—whose core is some kind of automated search in the computational universe.
It's been very interesting in the last several years. There are more and more case studies of this kind of NKS-based searching.
Gradually more and more methods are being found. Though I have to say that for basic NKS purposes exhaustive search on good computers still looks awfully good.
But one of the things I'm sure we'll see in the next few years is increasing systematization of NKS-based search-based modelling.
I'm guessing one of the big application areas will be biology.
Trying to figure out appropriate simple models of processes in biology.
It won't be long before we all know our complete genetic programs.
But then we have to work out how these programs run.
How development occurs. How the organism runs. And what bugs there can; what diseases can happen. And how to fix them.
We're beginning to get oodles of data about all this. And I think NKS is our best hope to really make sense of it all.
A key moment in biology was the realization that digital information lies at the foundation of the construction of biological systems.
Now we have to understand how processes in biological systems work.
And I think here the concept of simple programs will be what's crucial.
I think there are lots of areas of biology where one's inexorably moving towards simple programs. Particularly when one sees rampant diversity in biology.
When I learned biology decades ago, one heard about one or two kinds of some type of cell, or something.
But now there are zillions of them, with new ones being found all the time. Brain cells. Immune system cells.
Often with their own special, different, properties.
That don't just seem like different parameter values—but in a sense whole different species.
Well, I think instead what's going on is just that we're seeing sort of a simple enumeration of programs—where the programs just as a fact of pure NKS behave in very diverse and different ways.
It'll be the same thing with diseases, I expect. There'll be that kind of diversity there too.
I think this stuff will play out in its most important way in biomedicine.
But it'll have plenty of significance in other parts of biology too.
In Darwinian evolution, we're used to searching for "missing links" that allow us to see how some parameters changed from one thing to another in the fossil record.
But as I've been known to say: "who expected the stegosaurus?"
But with NKS we're understanding that the diverse forms of biology can represent sort of a uniform covering of abstract spaces of simple programs.
We can build a predictive biology that lets us understand the whole spectrum of forms.
And potentially, for example, do a much better job recognizing and cataloging them.
As well as understanding how we can engineer them for particular purposes.
Not only for complete organisms—weird designer fruit or whatever—but also for creating tissues and things for bioengineering.
Well, when it comes to modelling, I suppose the biggest prize in natural science is to find a fundamental model of physics.
Before NKS, the history of physics made it seem increasingly unlikely that all the richness that we see in the universe could come from a really simple rule.
But NKS makes that much less clear.
And in fact given NKS I certainly can't give an argument why our universe shouldn't all come from some very simple program.
Perhaps a program simple enough that we can just find it by searching for it.
Well, as many of you know—especially from reading Chapter 9—to get a really simple model of the universe I think it's inevitable that one has to go in a sense below space, and time, and everything familiar.
And then things become quite abstract. Quite difficult to deal with technically.
But I must say that the more I do along these lines, the more confident I feel that our universe may well really be out there—not too far out in the computational universe of possible universes.
These days, networks are all the rage...so at least the idea of representing things in terms of networks doesn't seem as crazy as before.
But if one looks at present-day physics, the NKS approach is deeply alien.
I used to think that as we made progress with the NKS approach, it'd look less alien to physicists.
And I think it looks increasingly likely that there are simple limits of the NKS approach that give present-day string theory, and so on.
But on the current trajectory it'd need at least a decade of development for present-day physicists to reach the kinds of ideas we need for the NKS approach.
Which means that if we're following that approach we're on our own. We can't expect much help from all our friendly physicists. It's just too alien to them.
You know, it's also kind of interesting to see how NKS interacts with mathematics.
In a sense, pure NKS is rather like pure mathematics.
It's concerned with studying abstract systems defined by rules—much like axioms.
But there's a huge difference in practice.
Because mathematics has picked what it considers interesting very much on the basis of its history.
Whereas NKS just goes out into the computational universe and starts looking at systems.
Enumerating all the possibilities.
And what one finds that way—out in the wild—is rather different than what one finds in the well-protected paths of traditional mathematics.
There's lots of computational irreducibility, for example. Leading to rampant undecidability.
It's kind of weird. Mathematics has focused so much on solving long-unsolved problems.
But from what I've seen in NKS, unsolvability is completely rampant.
It's only rare and special cases where things are solvable.
And that realization forces one to a whole different perspective on mathematics.
Thinking much more about experiments. Somehow imagining quite different forms of generalization. And realizing that mathematics is really part of the humanities: studying that great artifact of our civilization which is the current form of mathematics.
OK, well, so as NKS takes root, how does the future look?
One thing that I think will be a critical change is that more and more of what we see in the world—more of what we make—will come not from traditional methods of engineering, but instead from mining the computational universe.
Today, we are used to building things—structures, machines, algorithms—by explicitly designing them, step by step.
But what we learn from NKS is that that's not the best way to make use of our raw materials.
Out there in the computational universe there are vastly more efficient things to be found.
Rules that let us achieve particular purposes much more efficiently and effectively than anything we would create by traditional engineering.
Of course, when we see these things they often look quite alien to us.
They're not things we would ever come up with ourselves. They're peculiar devices plucked from the computational universe.
In the past, if we're confronted with two objects—one an artifact, one a natural system—it's usually been easy to tell which is the artifact.
It's the one that looks simpler; the one that has recognizable elements whose operation we understand.
When we pluck things from the computational universe, we're doing something a little more like nature. Which is not under the constraint of having to come up with things that we can understand.
But nature tends to use mechanisms like natural selection—and even natural selection is an important simplifying force. It can only really engage on features that are somehow simple.
But when we search arbitrarily in the computational universe, we're not relying on anything like that. So we get things that in a sense are more natural than nature.
And can operate in a sense in a cleverer way than nature.
It's a powerful idea mining from the computational universe.
We've actually used it for years in the construction of Mathematica.
Some of our cleverest algorithms were not created by humans; instead they were plucked from the computational universe—found by large-scale searches of spaces of possible programs.
Sometimes they're algorithms for very precise things. Like sorting. Or multiplying numbers. Or evaluating mathematical functions.
Sometimes for in a sense vaguer things. Like generating random sequences. Or hashing. Or automating the aesthetics of graphics. Or producing good automated tests.
When we construct algorithms ourselves, we tend to use schemes like iteration or recursion or something. That in a sense define a rather simple overall structure. Repetitive, nested, or whatever.
But when we get algorithms from the computational universe, they look in a sense much more complicated—often in some respects random, though usually with some structure, albeit one whose operation we cannot immediately understand.
It's interesting how the tradeoffs for creating things change when one is mining the computational universe rather than doing traditional engineering.
Traditional engineering puts a great premium on copying what one's done before. On re-using the same ideas of wheels and levers and half-adders and whatever.
But in mining the computational universe, creativity in coming up with new mechanisms is in a sense free.
And what tends to make the most sense is not to start from the devices one's already built, but instead to take the pure raw material available in some particular system, then to search the computational universe for ways to use it.
Like take nanotechnology. Where the traditional approach is to take mechanisms we know work in our traditional engineering, and to try to shrink them down to molecular scales.
Well, it's often rather difficult to make things like wheels out of molecules. But what the NKS approach says it that that's not what one needs to do.
Instead, one can take whatever is easy to create with raw molecules, then just search the abstract computational universe for how to use it to achieve some particular functional purpose.
Coming up with (quotes) engineering structures that look nothing like our traditional engineering structures.
The same kind of thing applies to synthetic biology. Given the raw material of proteins, one can expect to mine the computational universe for ways to use them to perform all sorts of important functions—perhaps in bizarrely different, and more efficient, ways than natural selection, for example, has ever found.
There's so much that can be done by mining the computational universe.
Not only in technology, but also in areas like art and design.
One of the features of the computational universe is that it's very big. There's a lot there. So if one wants something new, it's easy to find.
It changes the economics of production. It used to be that to find something new was very expensive.
So it was much better to mass produce things—all the same.
But mining the computational universe changes that: we can custom discover unique things cheaply and easily.
We did an experiment along these lines a couple of years ago with WolframTones.
Mining the computational universe of simple cellular automata to find musical forms.
It's interesting to reflect on what this project showed us.
Each time we press a button, our computer goes out into the computational universe, and finds some computational world—governed by some particular set of rules.
And then the computer plays us the sounds of that world—the musical form created by following that set of rules.
We might have thought that with simple rules we'd always get simple, boring, music.
But that's one of the lessons of NKS: we don't. Even among very simple programs, there's immense richness of behavior. Which we get to experience here as music.
It's kind of striking: it's like a Turing test for music. It's remarkably easy to find pleasing, inventive, pieces of music out in the computational universe.
That we certainly could imagine were made by talented human effort.
You know, one of the things that's emerged from studying the computational universe, and from NKS, is what I call the Principle of Computational Equivalence.
It's a strong, broad, scientific principle. That in a sense tells us that there's a broad equivalence in the kinds of computations that get done across a wide range of systems in the computational universe, in nature, and in particular in things like our brains.
At the outset, it's a principle that seems hard to swallow. But things like WolframTones somehow begin to ease us into it.
As a member of the NKS community observed: once one's heard the music they make, cellular automata begin to seem a lot more like us.
One's in a sense experiencing the Principle of Computational Equivalence.
Well, what happens with WolframTones is something quite general to the production of different forms.
Everyone knows one can make remarkable images using simple programs like cellular automata.
But it's becoming more and more clear that one can make important structures that way too.
For graphic design. Industrial engineering. Architecture.
Structures that in a sense always "make sense", because they're ultimately based on simple rules.
But which build from those simple rules to a high level of complexity and richness.
It's kind of a new aesthetic.
Somehow there's an idea that when one brings science into art, one must end up with traditional modernism.
Simple geometrical forms, and so on.
And in a sense that's what traditional science has been like. Handling simple structures and simple processes.
Regular geometrical figures. Simple circular motions. And so on.
But NKS isn't like that. And nor is most of the computational universe.
It's much richer, much more interesting, much less cold.
Often when we deal with classicism, what ends up happening is that we just copy forms that have been used before. The design of some Greek temple. Or some floral ornament that's a literal copy of what we see in nature.
But what NKS and the computational universe show us is that we can be more creative.
We can capture in a sense the essence of the beauty of nature, and the regularities we respond to—but in new ways.
Today the things we build—whether they be buildings, websites, or manufactured goods—tend to repeat over and over again the same kind of simple forms.
But a few decades from now I suspect one of the most obvious visible consequences of the spread of NKS is that our environment will look rather different.
It'll be full of structures that were found in the computational universe. Interesting, aesthetic, forms. Many with the kind of comfortable familiarity of classicism. But in a sense more logical—with more integrity—and with a whole diverse set of new, inventive, ideas.
And of course there'll be bizarre alien things that are quite different. Sometimes jarringly so. Sometimes in a sense showing us a form that we appreciate once we see it, yet refreshingly new.
It's always interesting how our environment influences our ways of thinking.
When there was clockwork, people thought about a clockwork universe.
When there were computer programs, people began to think about programming the universe.
And in the future, when the world is full of NKS artifacts, whatever might seem alien today about the core concepts of NKS will begin to seem completely commonplace and expected.
When one thinks about the computational universe and about the lessons of NKS, it's remarkable how broadly they can be applied.
I've often said that fifty years from now (or perhaps it's 45 now), of all the new things being created in the world—especially in technology—there'll be more being created by NKS methods, from mining the computational universe, than from all other traditional methods put together.
If you pick any industry—almost any activity—I think there are fundamental changes that will happen as a result of NKS.
I often have favorites at any given time.
Like one of my favorites right now is robotics, and particularly nanorobotics.
Where I think there are some really exciting things that can be done by creating modular robots—in a sense built from very simple identical elements, but operating according to rules mined from the computational universe.
Another recent favorite is image understanding. Where I think we'll see in a sense populations of possible algorithms being created using NKS—and able to detect different features of images.
Still another area is linguistics. Where I think there are new ways of understanding how to recognize and generate human and human-like languages using simple programs.
It's rather fun, actually, just to pick an area—an area of science, or an industry, or something—and ask how it can be changed with NKS.
Usually one can come up with remarkable, foundational, changes. Of course, they're usually not trivial to implement. Often they'd be a billion dollars of development to turn into reality.
But thinking about them now shows us where we can go with NKS.
Usually one will have to wait until a particular area is ripe—until the ambient technology has reached the right point.
It wouldn't have been useful—given calculus—to propose artificial satellites in the 1600s. It has to wait until there's appropriate supporting technology in the world.
But once there is, NKS can define where it should be taken.
It's kind of interesting: so much of the way we've set up our world to work is in some fundamental sense Newtoninan.
The trains—we hope—run on time. Cycling periodically like Newtonian planets.
We try to lay things out in simple repeating patterns. And so on.
But what NKS shows us is that there's much more that can be done. Much more richness in the possibilities that exist.
Already we are beginning to see some of it in the ways our computers communicate and so on. And perhaps in some aspects of the operation of financial markets.
But in the future one of the things that I think will emerge from NKS is that the world will seem less regular.
Instead of trains just coming in a repetitive sequence, we'll be using computation to have little vehicles going around in seemingly quite random ways—but more efficiently achieving the transportation objectives we have.
It'll be interesting to see how we manage to translate these ideas into our social structures as well. And our organizational and management structures.
Already the web and other modern communication technologies have provided new ways to interact.
But what does an NKS-informed organizational structure look like?
Where in a sense we are using nontrivial computation to work out what to do. Instead of, say, having a simple tree-like hierarchical organization.
I've been living the NKS paradigm for so long now. And my day job is being a company CEO. So I often think about how these interact.
And sometimes I realize that things we've been doing for ages at our company really are NKS-inspired ideas—but I just didn't notice.
And I think there are a few of those in what we do organizationally. But I don't think I can yet articulate it very well.
It's interesting how our ambient science informs our way of looking at the world—including the human world.
It's routine to talk about how things in our human world have momentum, or how different forces balance.
That's Newtonian mechanics.
It's interesting now as more of us have a kind of shared experience with NKS that we can start using NKS ideas as ways to explain and communicate about the world.
Talking about how such and such a process involves more computation. Or about how we are constrained in something by computational irreducibility. Or how things must correspond through the Principle of Computational Equivalence.
It's a gradual process. But as more and more people understand the framework of NKS, it's going to become a more and more common shared metaphor for the world.
Which of course helps us to understand the science better too.
Somehow this all reminds me of education.
I think there's a lot that NKS can contribute there.
Historically, mathematics has been an important part of education. It's been taught far more than it in a sense should have been, based on how people actually use it in the adult world.
But it's been taught because it defines some important ways of thinking. Of being precise. And analytical. And being able to work things out by reason.
Well, I think NKS provides in a sense a more relevant vehicle for the same kinds of things.
Mathematics has captured the essence of some particular elements of our world, that have traditionally been the subject of the exact sciences.
And certainly these things have been a shining achievement of our civilization.
But we know from NKS that there's in a sense much more out there.
There's a lot more mechanisms for things than just what we know from traditional mathematics.
And studying NKS gives us a broader view of what's possible, and what we need to understand to understand what can happen in things like the natural world.
You know, right now, in universities everywhere, mathematics gets taught as sort of a service to areas like physics and engineering and economics.
Increasingly, though, people realize that they should be teaching something about computation as a service too.
And often that translates into teaching the specifics of programming in Mathematica, or some such. Which is great, especially if it actually is Mathematica, not some lower-level language.
But in a sense there's something much more general and fundamental that should be done too. One should be teaching general computational science.
And sort of the foundation for that is NKS. NKS is the analog of the pure mathematics—the things like calculus—that are getting taught now.
Over the next few years, I think there'll be more and more formalization of NKS and its role as fundamental computational science, as part of the curriculum.
Not just at the college level, but at much lower levels too.
It's fun to see young kids now who are used to seeing NKS things. "That looks like a rule 30". "Hey, there's a rule 90 there".
It's fun for many reasons. Partly, it's defining a different experience of the world, where different things can be noticed.
Partly, it's really opening up the possibility of discovery. Because it becomes trivial for a kid to find something—out in the computational universe—that one can be sure has never been seen before.
It makes doing science a much more personal and creative activity—not just something where one has to listen to facts from someone else.
It also gives a new, computational, intuition about things. Doing basic NKS—following the rules of a simple cellular automaton on a piece of paper, or something—is in a sense like doing pre-computer science.
And doing NKS is a great way to get into actually doing computation.
With the new version of Mathematica, we've basically finally broken down the barriers to being able to write programs that do interesting algorithmic, graphical, interactive things.
But when one wants to have a program that's simple to write, and yet does the most interesting things—well, then NKS is the place to look for that.
For the best exercises and experiences in writing programs.
I'm tremendously optimistic about all the things that can be achieved with NKS in the world.
But, so, how do we get there? How do we make sure NKS achieves its potential? Hopefully as quickly as possible. But that way we get to all see it more quickly.
I'm a devoted student of the history of science. And I'm a great believer in learning from what has happened in the past.
So I like to study the great shifts that have happened in scientific thinking in history.
There are some invariants. Some things just depend on human nature.
At any given time there are activities that are well developed. Well institutionalized.
And there are people who spend their careers doing them. And whose world views are based on them.
And it's inevitable that most of those people don't really want something new coming along.
It seems very disquieting. Upsetting.
Sometimes people assume science is different. They always hear about progress in science. So they assume people are always embracing the new.
But it isn't true at all. In fact, as the academic enterprise gets larger, and academic careers get longer, I think if anything it becomes less and less true.
There's nothing wrong with that. The world needs consistent work.
But for progress to happen, there needs to be a portfolio of things going on.
That includes new things.
And sometimes it isn't trivial to get the new things to happen.
I mean, it'd be a shame if NKS waited a few more centuries to develop.
But it's not trivial to have something new like that flourish in the world.
It requires consistent, great, effort.
I put a decade of work into writing the NKS book, and in a sense packaging the key ideas and discoveries of NKS in a form where they could have the most impact in the world.
I thought pretty hard about the best ways to do things. The tradeoffs between technical descriptions that specialized scientists would recognize, and most people would think were incomprehensible.
And trying to reduce everything to a level of clarity and polish where a much broader audience could get involved.
I chose the latter path. I wanted to open up the science to as broad an audience as possible.
And I have to say that I think that worked very well. There were a few scientists who initially assumed that anything other people could actually understand couldn't really be telling them anything.
But I'm not sure those scientists were ready to learn anything new anyway.
And the net result is that there've been a huge range of people—from all sorts of different backgrounds—who've come to NKS, and had very interesting and diverse perspectives.
People often ask me, "So, how are things going with NKS?" "What are people doing with it?"
People ask the same thing about Mathematica. And usually there I just have to say: look, zillions of people have bought Mathematica, but they usually never tell us what particularly they're doing with it. We only get to know that through random anecdotal things that happen.
And it's the same with NKS. We know a lot is going on with it. But we certainly don't have a complete map.
There are a few things we can do to find out. Like we make a bibliography of significant academic work that cites NKS.
All sorts of different topics. On average a few papers per day.
I have to say that as I've looked at these things over the past few years, I see a definite trend.
They're getting better and better. The uses of NKS are becoming deeper and clearer.
The level of results is going up and up.
But these things take time. A few years back I did a study of papers that cited my early work on cellular automata, from the early 1980s.
Thousands and thousands of papers. But a full ten years before there was a significant density of what I considered really good and deep uses of what I'd done.
Well, with NKS—probably as a result of a much more impactful launch—we're definitely way ahead of that.
Five years out, there's lots of good, serious, stuff being done.
Perhaps in a parallel life, I'd read all of it. I certainly find the subject matter interesting.
But as it is, things have expanded way beyond what any one person can keep up with.
That's why this conference is a great thing ... it gives us a snapshot of some of what's being done in NKS.
And you'll see me flitting from one talk to another, trying to soak it all in.
I'm always someone who likes to plan. Perhaps that's a result of having been a CEO for a couple of decades. Or perhaps I'm mixing cause and effect.
But anyway, I often think about where I and we should be spending resources to have the greatest positive effect on NKS.
I really enjoy actually doing NKS research myself. Exploring the computational universe. I know that in just a few hours, I can find something interesting. And it's really satisfying.
But I think there are other things I need to do now. That in a sense have more leverage than adding incrementally to the kinds of things I did in the book.
We've just had our annual NKS summer school for the past three weeks. Our fifth one.
I think it's important way to spread NKS. There are really two things I try to do there.
First, I do live experiments. That's something that's become possible with modern Mathematica technology.
It's become possible to do original science live and in public.
Most science these days gets done behind closed doors, of offices, or labs, or whatever.
And there's a separate process of reporting the discoveries that get made.
But there's something new and rather wonderful that becomes possible with the technology we've built with Mathematica, and particularly with the subject matter of NKS.
It becomes possible to actually do original science in front of an audience.
To start from nothing but an idea. And over the course of an hour or two, to actually discover something that's never been discovered before.
Of course there are low points. Where things seem to be completely off track. And everything seems to be failing.
But I think it's really useful for people to see the actual methodology of making discoveries in NKS. Of doing computer experiments that in real time explore the computational universe.
We've been thinking about trying to take live experiments global. Of having them be watchable over the web. We're still trying to work out how to "produce" such events.
But it's likely they'll be coming before too long. And I think there'll be really valuable not only as some bizarre new form of reality entertainment, but more importantly as a way for people to see and experience science ... and to get involved in actually making discoveries.
But anyway, live experiments are one thing I do at the summer school, and I'll probably do more globally as a way to spread the methodology of NKS.
Another thing I do is to work out projects for people to do. At the summer school, everyone does their own original project. And I try to help define each of them.
It's some sort of combination of what I've learned to do in creative science over the years, and what I've learned to do as the CEO of a very active company.
Trying to define meaningful strategic directions that fit in with what people want and are able to do.
And I think this is something that's really a high leverage way for me to contribute to NKS. To help people define directions. To figure out what strategic projects they should be doing, and how to solve problems they run into.
We've tried to concentrate that activity into the summer school. But in general I think that's a place where I feel it's important for me to contribute in moving NKS forward.
Whether it's figuring out how to attack some problem in science or technology with NKS, or to figure out a business strategy that will work to develop an NKS idea.
It's a complicated thing trying to move NKS forward.
Twenty-five years ago, I tried to launch the field of complex systems research—kind of a precursor of NKS, before I had really dived down to the most fundamental issues.
With complex systems research, I did the obvious things. I started the first journal for the field—Complex Systems, which I'm happy to say is still alive and well.
And I started the first research institute devoted to the field.
After a few years, though, I got impatient. I didn't want to spend my time arguing yet again for why complexity was a field worth funding. Or how someone could be a professor studying it, without being attached to some specific existing university department.
I decided to take things into my own hands in moving the science I was interested in. So I created Mathematica as a tool, and I created our company, Wolfram Research, as an environment to work in.
And that's all worked out great. And allowed me to create NKS, and so on.
But meanwhile, complexity did eventually take off. There are now perhaps a dozen journals. The government funding did eventually come through. And instead of my one institute there are hundreds of complexity institutes around the world.
I've often wondered how much effect my early efforts had. It's amusing to see the detailed things I said in promoting the field 25 years ago repeated as new today.
But I honestly don't know just how complexity developed, and how much of it did or didn't depend on what I did.
I'm actually planning a project to find out. Because we're just at a time where computational history is for the first time possible. Almost all the relevant materials and documents are on the web. And we can start to systematically study them.
Creating a genealogy of complexity institutes. Trying to understand the historical connections between different people and things.
I'm going to be very interested to see how complexity research actually evolved; I think it will definitely inform some of the directions I take with NKS.
But actually, I was pretty unhappy with many aspects of what happened with complexity.
And I few years ago, I realized the key problem.
You see, when I was studying cellular automata and things, I had figured out some core basic science results. Which I thought could form the basis for a basic science of complexity.
But when the field developed, it really did so by grafting itself onto lots of existing fields. There was no core of basic science. It was always complexity in biology, or complexity in finance, or whatever.
There were definitely methods that could be shared. But they weren't studied as a basic science.
Well, in NKS, we've got a lot further with the whole field of pure NKS. The core basic science of the computational universe.
But we have to not confuse pure NKS with the applications of NKS.
It's like with mathematics. There's a very valid and important activity of pure mathematics. That has a certain integrity and place.
And is distinct from the applications of mathematics.
Applied mathematics is kind of a weird field that sits between pure mathematics and some applications, but doesn't have a good identity of its own.
Well, with NKS we need to be doing pure NKS, for its own sake. And then there need to be lots of applications of NKS.
And most of those applications should be being done within the disciplines and the institutions that have grown up to pursue those particular areas.
People trained in economics should be doing the economics applications; people trained in biology the biology applications.
Of course, one can be trained first in NKS, and then one has a tremendous advantage as one enters one of these other fields.
But one needs to separate pure NKS from its applications.
Of course, it tends to be the applications that justify more resources being put into the pure basic science.
The "applications", though, don't need to be science or technology. They could be things like art and design too.
But somehow to be healthy the basic science has to be connected to the practical world.
It's great to do it for its own aesthetic sake. Or even as something for the general public to appreciate.
But ultimately it's only going to be healthy if it has real applications. Which certainly won't be a problem with NKS.
Well, OK, so where should NKS be done?
We've done some work at planting NKS at universities. It should happen. And it will happen. But frankly for me as someone who's used to building organizations for myself, it's not the right kind of work.
Kind of reverse engineering into existing academic structures and politics. It's valuable, because universities are a good place to have continued intellectual activities happen.
And at least for now they're a place most people go through on their way to the adult world.
I of course have build my own structure for getting my work done. A company which I'm happy to say has been very successful, productive and consistently profitable for twenty years. And where I have managed to collect from around the world an absolutely outstanding team.
And there are some things with NKS that we as a company can do. Particularly when it comes to applications that relate to the kinds of products we build.
But for pure NKS research—well, I view our efforts in that direction as a kind of intellectual philanthropy.
Our company has been around for a little more than twenty years. And I am quite used to planning what we're going to be doing a decade hence.
So I think we've ended up with longer time horizons than most active organizations ever do.
And it's with that kind of long-term view that I think about the development of NKS.
Ultimately, though, I'm not sure there's a fundamental justification for us to spend resources developing NKS. But it feels like the right thing to do. It's something I think is important for the world. And so it's something I do.
It's kind of a direct hands-on form of philanthropy. It's not something where one gives a university a blob of money and hopes they'll do something useful with it.
It's something where we're trying to push the intellectual direction forward ourselves, in the best way we can.
And I think it's going to be worth it.
Now, of course, there are also plenty of clear commercial opportunities with NKS. But it's far from trivial to see how to build the right structure to make those happen.
They're too far out. And they're too diverse. Some of them require a team that's involved with computer security. Some with drug development. Some with financial engineering.
To really develop each one requires perhaps a million dollars, perhaps a hundred million dollars. Perhaps more.
What they have in common is using NKS methodology. Plucking things out of what we discover in pure NKS.
Every year I make a little more progress in figuring out how to structure something that can really make all the links to move this forward. But I'm still not there. It's an unsolved problem as far as I'm concerned.
I should say, by the way, that as NKS research moves forward—both pure and applied—I can't emphasize enough how important it is to maintain linkages.
Of course there are NKS ideas that can be used without somehow explicitly calling them NKS.
But that loses something. It kind of robs the world of the ability to see the cross-connections between what's going on.
When we scan the literature to make the NKS bibliography, it's fairly easy to see what's going on when people, for example, have some reference to the NKS book.
Perhaps one day there'll be automated text understanding systems that do really well in recognizing that, yes, such-and-such a paper is NKS based. And quite probably those systems themselves will be built with NKS.
But for now, we have to look at things like academic citations. Of course, when it comes to technology, there's typically nothing like that. Devices, thankfully, don't come with references in their manuals.
But the more NKS stays connected, the more it's going to be possible for it to develop well.
The more it's going to be easy when someone asks "so, has NKS been used in X", that it's going to be easy to tell.
And the more it's going to be possible for ideas from using NKS in one area to be applied to others.
You know, in thinking about developing NKS as a science, I think about a lot of things.
I'm often talking to my friends who are historians of science, and so on.
Sometimes they are amused that a person who discovered computational irreducibility should try to predict and control what will happen in the science they are interested in.
But I prefer to think of it as an effort to "out compute" other forces in the world.
I ask my friends the science historians for precedents and examples. For a while, they could give them. But now they say "look, you've done more planning and more thinking than anyone else who's been involved in developing a science". "And you're in a unique position". "You're on your own". "We'll be fascinated to see what happens".
My staff sometimes label different areas of NKS by funny names. Like Wolframics for the basic science of NKS. And Wolframistic for things studied by applied NKS methods. And—my favorite—Wolframism for the NKS way of thinking.
But it's clear that ultimately my—and our—role is just to try to inject a little bit here and there into the development of something much bigger than anything we alone can ever do.
And one clear contribution we can make is with tools.
So, as I mentioned before, we just finished a ten-year-long effort to reinvent Mathematica.
That's given us a whole new level of tools to investigate NKS—and many other things as well.
There are two particular things I want to mention in connection with the new Mathematica.
One is our integration of data. What we call the Computable Data Initiative.
One's always been able to ask Mathematica the values of mathematical functions and things.
But now, just like that, one can ask Mathematica the values of quantities from the world.
Like the population of France or the melting point of lead.
It's a big effort curating all this data. And in some ways we're just starting.
But it's remarkable what one can learn when one has all this data consistently arranged.
It becomes possible to do a whole another level of applied NKS, looking for global features of the world, using actual data from the world.
Well, another thing about the new Mathematica—in fact it's kind of the most central thing—is the fact that it's for the first time become easy to do not only static computation, but also dynamic computation.
To create an interactive user interface as a routine part of one's everyday work.
It's really a neat thing to see, and I hope you'll get a chance sometime at this conference, if you haven't seen it already.
But one of the things that this makes possible is in a sense a new form of scientific communication.
There's an old adage that a picture is worth a thousand words. Well, now we have dynamic Demonstrations that are easy to make, that might be worth a thousand pictures each.
In the last two months we've started building The Wolfram Demonstrations Project, as a place to publish these Demonstrations.
There are lots about NKS there already.
Every one an active, interactive, demonstration of an idea. And most of them based on amazingly simple pieces of code.
That often took not that many minutes to write.
You know, the way science is communicated hasn't changed much in 300 years.
We've still got papers, and journals, and things.
I think the interactive Demonstrations that we can now build will finally define a new direction.
Where science can not only be heard, but also experienced. And, what's more, all the code for every Demonstrations is completely open—and usually easy to understand.
So when people see a piece of science here, they can immediately build on it. Taking the code and doing more.
Right now the Demonstrations Project is growing rapidly as a general repository for communicating ideas.
We're planning to let people use it as sort of the infrastructure for something more like academic journals, with all sorts of subject-specific reviewed pieces.
So that's another thing that's coming.
Well, OK, so in addition to things like software tools, we're thinking about organizational tools.
One new one that we just added is the idea of research prizes.
We just set up our first research prize. On May 14, the fifth anniversary of the publication of NKS.
Here it is.
It's a very concrete problem. It's not a popularity contest prize. It's a prize about getting a concrete result.
It's a nice pure NKS question.
In the NKS book, with the help of a rather wayward research assistant, I showed that rule 110 is computationally universal. Which showed that the boundary of computation universality is in a sense as low as it can possibly be in cellular automata.
And that's an important piece of evidence for things like the Principle of Computational Equivalence.
Well, in the book I had studied Turing machines too. And I constructed what is currently the simplest known example of a universal Turing machine—with 2 states and 5 colors.
But I wondered just where the boundary of computation universality is for Turing machines.
With 2 states and 2 colors I convinced myself that there couldn't be universality.
But with 2 states and 3 colors I found a Turing machine which is conceivably universal.
I don't know if it is. It'll be interesting either way.
Because after all these years of talking about universal Turing machines, it'll finally show us how simple they can be.
Well, I'm happy to say that we know there's quite a lot of activity on the prize. With efforts on both sides of the question.
I don't know how long it'll take to resolve. I wanted our first prize to be something that isn't too far away... not something that's going to become like the Riemann Hypothesis.
But I'm so far encouraged that research prizes are an interesting way to move research forward. And if so, it's a good tool to extend our intellectual philanthropy.
Well, I think I should be wrapping up here.
I'm looking forward to everything at this conference.
I might mention that on Sunday we have a special event. My friend Greg Chaitin is turning 60, and we're having a little celebration.
As many of you will know, Greg is the originator of algorithmic information theory, among other things. He's contributed to all sorts of fundamental questions about computation and mathematics.
And I would say that he and I agree about many important things—about the role of computation in areas like mathematics, about the ubiquity of undecidability, and so on.
But perhaps the most interesting things are areas where I don't think we agree. You see, a lot of what Greg has done is to show what you can't do with simple programs—and that for example simple programs can't produce what he calls algorithmic randomness.
Well, of course, all of NKS lives in the world of what simple programs can do. And one of the questions is whether our universe lives in that world too.
Greg has defined a number he calls omega, which is something fundamentally noncomputable—not reachable by any finite program. And Greg has often summarized the difference between our views as whether the universe is like pi or omega.
I think the universe is computable—like the number pi. He's guesses it's more like omega. Fundamentally uncomputable and somehow unknowable.
Neither of us, of course, know what's actually true. But I think both of us are keen to find out—whichever way it goes.
And on Sunday we'll be having a discussion with many of the contributors to a book in honor of Greg, where I'm sure we'll be talking about things like that.
Well, let me wrap up here. And say that I feel extremely optimistic and energetic about NKS. And I'm pleased to see how the NKS community is developing. I think we're just on the cusp of what'll probably be the most energetic and exciting phase of the development of NKS in the world—where all the threads begin to come together, and NKS begins to be a large coherent force in the world.