This is an old revision of the document!
Indefinite Scalability
Introduction: Hardware determinism
In the traditional approach to digital computing, the physical hardware is required to be deterministic: The machine is to operate in clearly-defined discrete steps, and the state of the machine (the values of all its 'bits' collectively) after a step is absolutely and completely determined by the state of the machine when the step began. In the agreement between hardware and software, the hardware is not allowed to produce any surprises or unanticipated conditions: nothing misread or misstated, no oopsies or booboos or broken alarm clocks, no excuses of any kind. If hardware can't perform its duties perfectly, for whatever reason, its final obligation is to kill itself: to crash and “end the world”, rather than produce a wrong answer.
Deterministic hardware makes the programmer's job much easier are easy to reason about and they have been a remarkable, world-changing success in the marketplace, but they ultimately scale poorly and offer poor security.