Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Could you mention any of the good points in NKS? The reviews were so uniformly negative (many of them quite fun to read) that I got the impression there was nothing to it. I paged through it once and saw lots of pretty pictures, but nothing that seemed all that interesting...


I haven't fully formed an opinion about it, but it's the most-completely-laid-out version of his study of cellular automata, which was genuinely novel in the '80s when he first published a classification of them, and led to some interesting debates since then. He digs into them in a lot of detail and forms some theories of computational emergence and philosophy-of-computation, which he then ties in to a sort of computationalist view of the universe that hypothesizes the ubiquity of complexity from simple interaction as a key feature. Along the way he puts forward some pithy "principles", some of which are thought-provoking, though not all are novel and some are obviously problematic (one of the more-cited ones is http://mathworld.wolfram.com/PrincipleofComputationalEquival...).

I do think a massively edited down and more humble version of the book could at least present interesting positions to argue against or develop. Part of the problem with his writing approach is that so much of the response is (correctly) pointing out that he didn't invent certain things, or that he's giving new names to things that already have names in either CS or philosophy or both, etc., that it obscures the contents, and the reader has to do a lot of work to get something out of it.

If you remove the claims to novelty and take it instead as a description of a certain contemporary paradigm of simulation-oriented science that resolves around computational models and complex systems, and take Wolfram as just your narrator digging into its philosophical implications (with a particular set of biases), it's not a bad read either, although it could also use an editor to move along more engagingly and not talk about Stephen Wolfram so much. So I'll admit it's not great for that purpose either; it maybe wants to be like a Douglas Hofstadter book but isn't really. I think some HN readers might actually like it, though. At the very least you can take it as an experimental attempt to answer the question: just how much of a philosophy can you hang almost entirely off of a study of cellular automata?

That's a pretty lukewarm endorsement, because honestly I don't think it's a good book as written, but some of the negative reviews are exaggerating its lack of contents.


Some corrections, from an enthusiast of some of the ideas of NKS and someone in the R&D division of Wolfram Research:

1. Cellular automata are not the "point" of the book. The point of the book is the study of simple computational systems: cellular automata, mobile automata, Turing machines, register machines, tag systems, string rewriting systems, graph automata, lattice automata, etc..

What are they?

How powerful are they?

What is the distribution of complexity of these systems?

How might they hint at an unexplored scientific territory that we could profitably investigate?

What systems in nature can they qualitatively model?

How well does traditional mathematics work in analyzing and predicting their behavior?

The complexity manifested by these systems have been sporadically encountered by various people. A classic example being of course being Conway's Game of Life. But that was seen as pure recreation. Not until much later did anyone engage in systematic enumeration of similar systems in order to determine if Conway's game of life was special in any sense, if its universality was a unique feature of such systems.

Even the genius John von Neumann, who invented CAs, didn't simulate any to see what they actually did. He just saw them as models for engineering, and went about designing a somewhat pointless and brittle self-reproducing CA that has about zero significance for the [then non-existent] field of artificial life.

Similarly, Turing used Turing machines them to build a universal machine, and that's as much as he cared about running Turing machines. He almost immediately went on to oracles and supercomputation, which are pretty abstract and arguably far less important ideas.

2. Wolfram didn't invent many of the things in the book, and as far as I'm aware, doesn't claim to. In the very detailed notes you'll find plenty of attribution (although many academic fields are necessarily summarized very briefly). What he does claim to be the first to have done is articulate a common thread of argument that connects these existing ideas in a coherent and explanatory way.

3. This isn't about simulation. Simulation is precisely the WRONG way to look at what he's saying. What follows is a particular case he covers in the book, one of many such cases, but it is a nice illustration.

Turbulence in fluids is one of those 'puzzling' things that we often describe as a complex and interesting phenomenon in nature [0]. The traditional approach to understanding what causes turbulence is to use non-linear partial differential equations to describe the interplay between velocity, density, and pressure in fluids [1].

When you ask what these equations "really mean", there is a sense in which you have to first explain some pretty complex mathematical machinery, culminating in the very idea of a real number -- that take tens of years for modern-day students to learn in detail, that took hundreds of years for professional mathematicians to construct. These aren't trivial, or even particularly natural, ideas [2].

For some very simple cases it is possible to use the same mathematical machinery that expresses these equations to then solve them -- although enough fundamental stuff is still missing to warrant a $1m Clay prize [3].

But many questions (include almost all practical ones) are far too difficult to solve using the same "mathematical machinery" that expressed the equations. So we end up instead discretizing time and space and finding approximations to the solutions of these equations (using floating point numbers that are themselves approximations to the reals).

But wait a minute! Fluids are COMPOSED of discrete particles. The Navier-Stokes are just an approximation in the case of large numbers and statistical independence of momenta. So we've built approximations of approximations of approximations, at great computational expense and effort, with very little of the clarity and elegance of Newton's original work in classical mechanics [4].

We've got this very tall tower of ideas, with many answers still unclear (eg [5]). Can we refactor?

A natural question to start with is the following: if you don't limit yourself to continuous mathematics, how much "computational machinery" do you need to get fluid turbulence? It turns out, as Wolfram and others showed, all you need a system that is simple enough to explain to a 5-year-old [6]. (In fact, if you have ever played Chinese Checkers, you have a rough feel for how it would work).

These lattice gas automata have subsequently led to industrially useful CFD solvers [7].

In short, you can discretize both space, time, momentum, and break Galilean invariance, and my god it still works! That is a remarkable result!

What's the point of all this? The point here is that many of the traditional assumptions one makes in mathematical physics turn out not to be critical to reproduce the behavior one is interested in. And this appears to be a general phenomenon in many fields: the "unreasonable success of mathematics" has lead us to in some sense define science to be about building idealized mathematical systems.

Sometimes our ignorance of the 'spikiness' of computation has lead to some wild goose chases. [8]

And science has in turn ignored many problems that weren't amenable to mathematical analysis. Not out of pride or incompetence, but because no-one had made a particular effort to articulate what other kinds of analysis were possible. That's what the book tries to do, and that is why it perhaps seems quite hubristic. It is a manifesto. You can't write a manifesto in the form of 60 consecutive peer-reviewed papers.

I think there are faults with the book, particularly its length, its pedantry, and the assumptions it makes about its readers. But it is a radical scientific view, makes some quite big claims and predictions, perhaps wrong, perhaps right. I think it is definitely worth dipping dipping into at random for an educated generalist (rather than reading sequentially, which can be quite tiring).

Anyway, this post is far too long, and I'm not getting paid for defending Wolfram's work. I have Mathematica kernel functionality to write, dammnit!

[0] http://www.wolframscience.com/nksonline/page-377

[1] https://en.wikipedia.org/wiki/Navier%E2%80%93Stokes_equation...

[2] http://plato.stanford.edu/entries/mathematics-constructive/

[3] http://www.claymath.org/millennium/Navier-Stokes_Equations/

[4] https://en.wikipedia.org/wiki/Philosophi%C3%A6_Naturalis_Pri...

[5] https://en.wikipedia.org/wiki/Turbulence#Kolmogorov.27s_theo...

[6] https://en.wikipedia.org/wiki/Lattice_gas_automaton ; http://www.wolframscience.com/nksonline/page-378#previous

[7] https://en.wikipedia.org/wiki/Lattice_Boltzmann_methods

[8] https://en.wikipedia.org/wiki/Principia_Mathematica


I have to say, that last bit about not getting paid to write this comment on HN made me wonder what percentage of comments on HN are paid for. I never thought about it; I guess if asked I would have guessed 0%, but you never know...


I tried struggling through it once, but it's a long, dense read. (I should say that I find the complaints of Wolfram's ego overblown. I say if someone has done more than you, let them have their ego.) Anyway, Wolfram's emphasis on making the text accessible (through short sentences, etc) give it a meandering quality that makes it difficult to discern whatever implications he's actually trying to go for. There are so many examples that you forget what point he's trying to make.

That said, I found some of the philosophy interesting. I didn't get all the way through the book, but the one that stuck out to me (which I also recognize is not something that Wolfram himself came up with) is the thing about how random outputs can come from systems with very simple inputs.

The implications there are interesting because it means that you can't always reverse-engineer. ("Computational Irreducibility") It also means that reductionism isn't the end-all be-all of analysis, and that "systems thinking" and models-based analysis might be the only way to come to certain classes of insights.

It also means that the existence of highly complex systems is not evidence of a higher power, or a soul. We cannot always reverse engineer the outputs of a highly complex systems down to a simple system with simple inputs, but that doesn't mean that simple system doesn't exist.

So it starts tying into the free will vs determinism philosophical argument - the point being that we as people can be non-deterministic complex systems, and that might feel like free will to us. Which isn't the same thing as saying that we are highly complex deterministic systems, with response patterns that would be completely predictable if we could analyze it enough.


NKS contains a mention of the proof that Rule 110 is Turing Complete. This is genuinely interesting, but it doesn't change its field in a significant way.

Of course, Wolfram didn't come up with the proof himself. That was done by Matthew Cook while he was working for Wolfram Research. Stephen Wolfram obtained a court order preventing Cook from presenting his result before NKS was published, because he claimed that publishing this result violated an NDA Cook signed.


According to Wolfram, Cook's job was to prove Rule 110 was universal. Cook didn't "discover" it as an independent action.

In a very direct sense, this was a software development task, where the program that was being written was precisely a universal program (through several layers of emulation, of course; rule 110 -> 'particle computer' -> cyclic tag system -> Turing machine). It's an impressive program, but also quite mechanical. More details: http://www.wolframscience.com/nksonline/page-681#previous

Here's the timeline as far as I've been able to determine, mostly from sources inside the company:

0. Wolfram tasked Cook with finding a proof that 110 was universal.

1. With encouragement and help, Cook finished the proof many years before the book was ready.

2. Cook tried to publish the program/proof at some complexity conference.

3. Wolfram asked him not to, because it was against the terms of his contract.

4. Cook agreed not to, but then did it anyway.

5. Wolfram threatened legal action to prevent the proof being published.

This kind of thing is clearly a breakdown of the relationship between Cook and Wolfram. Is there a good guy and a bad guy? Maybe, maybe not. But if we see this proof as a program, I'm sure many people would agree that publishing code one was paid to write, without permission, is kind of a no-no.

To my mind, this doesn't so much paint Wolfram as a lawsuit-happy egomaniac as it does expose some of the contradictions of a running a private company as a commercial venture and as a vehicle for one's own research.

edit: I work for Wolfram, as probably some HN users already know and as I mention elsewhere on this thread. But when I heard about the whole Cook thing a couple of years ago, I asked around about what happened to make sure I wasn't working for a company that was unethical. The above is what I was able to determine.


> Stephen Wolfram obtained a court order preventing Cook from presenting his result before NKS was published, because he claimed that publishing this result violated an NDA Cook signed.

BTW, this provided insight into question exactly what was Wolfram's results and what was taken from his colleagues/employees.

It very much confused me when I first read about the court order: Did he really not have enough of his own results in NKS that he needed to hide the fact that the results were not originally his? And merely by asking the question, the answer seems obvious.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: