Ten years ago a book appeared that promised to change the way we do science and put computing at the forefront of the search for a grand unified theory of everything.
At the time the event was big - well as big as a claimed breakthrough in science can be. Stephen Wolfram started out as a theoretical physicist, gaining a PhD from Caltech when only 20, then he got interested in computing and founded Mathematica - the company that today brings us the Wolfram Alpha search engine and, of course Mathematica - a program that takes the hard work out of doing math.
Wolfram's "great discovery" was a classification of 1D cellular automata. This was a nice piece of work, but since then these early ideas have been inflated to general principles of the universe. Rather than going through the conventional channels, the result of years of research was bundled up into a single large book called A New Kind of Science (NKS). You can also read NKS on-line at NKS Online.
This was released on the world ten years ago and Wolfram has recently been reminiscing on the past, judging the present and predicting the future in a series of blog posts.
The ideas expressed in NKS are, broadly speaking, about the way that seemingly simple rules can give rise to apparently complex behaviour. Sometimes this behaviour looks organized and sometimes it looks pseudo random, but the key observation is that so much more seems to come out than goes in. This is exciting stuff because it suggests that behind every complex phenomenon there might be a simple rule - if only we knew where to look and what the appropriate language was to frame that rule.
The book itself attracted a great deal of criticism and the recent blog posts spend a lot of time explaining why the book took the form it did and why it wasn't in the usual academic mold.
Apart from "simple algorithms create complex behaviour", it is difficult to pull any great ideas or principles from NKS. One of the most often quoted is the "principle of computational equivalence" which is very difficult to state concisely. Wolfram's MathWorld states it as:
Almost all processes that are not obviously simple can be viewed as computations of equivalent sophistication.
Or put another way, which I'm sure Wolfram would say was too simple,
any reasonably complicated computational device is a universal Turing machine.
This isn't particularly deep as the requirements for universal computation aren't that demanding.
Despite the arguments put forward in the recent blog entries, you have to conclude that NKS is a thought-provoking book but not much more. It is full of examples that will delight, and there is no other word for it, any computer scientist. Many of the ideas, however, have been around for longer than the book and Wolfram, as he is happy to admit, didn't invent cellular automata and certainly wasn't the first to study them. It might come as a surprise to learn that one of the early pioneers was E.F. Codd who later invented the ideas that gave rise to SQL, see: Codd and his rules.
The recent assessment of NKS in Wolfram's blog indicates that he thinks that the whole event has been a "Paradigm Shift". When you stand back you have to conclude that NKS is just more of the same rather than a revolution. It follows in the line of Turing's work on biology, Turing and Church's work on computability and, most of all, on algorithmic information theory as pioneered by Chaitin and others.
NKS has managed to introduce this style of thinking into areas such as biology, genetics and even chemistry, and for this it has been a success. The subject that I suspect would need to be affected by it for it to be a real revolution would be physics - and this show little signs of happening. After another ten years NKS will probably look like an even stranger enterprise that it does today.
To celebrate the ten year anniversary, Wolfram Alpha now shows one of the cellular automata patterns that are so central to the book in place of its usual circle of dots animation.
Although not made for the anniversary, you might like to watch the following video where Wolfram describes some of his early work and his hopes for Alpha:
Python is the topic of this week's catch of blog posts that might otherwise have escaped your notice. There are a couple of courses, a round up of books, a couple of servings of Django, Python compare [ ... ]