He said "it's non-deterministic" and you said "yeah" - but then I said "I think that's wrong, it is deterministic" and you said "yeah that's right".

I think it's just a mix-up with terminology. The thing is, the ones on the first pages that I read about have a rule that generates them, the rule is of the form, if it's like this do x, if it's like that do y etc.

These rules are deterministic, they contain no random or probabilistic element - although you can normally choose your starting conditions and inputs and various other parameters - and what makes them interesting is that these very simple, deterministic rules generate very complex things. But if you did the same program twice, with the same input parameters etc you would get the same result.

But the, I think, counter-intuitive thing, is that very simple, deterministic rules generate very complicated patterns. And in fact in many cases even though we know and understand the rule, and we choose the starting conditions, we often can't work out where it will end up, or what type of pattern it will end up being - other than by actually just doing it.

So I think it's tempting to think that cos we know the inputs and we know the generating rule, but we don't know where it will end up, that the explanation for us seemingly sort of getting lost between the known start, and the unpredictable result is that it's non-deterministic, but that's not it - we lose the ability to predict where it will go not cos of randomness or non-determinism, but simply because of complexity* or undecidability.

Just cos we it's impossible to predict we want to say it's random, but it's not, it's something that our mind wants to interpret that way, cos we are not used to something where we know the start and we know precisely every step, and yet we can't tell where it will end up. That's right ain't it

@Slothrop, @MrTea?

*Great/terrible mangling of the language "simply because of complexity"