Chapter 2: The Crucial Experiment

Section 2: The Need for a New Intuition

Intuition from practical computing

Everyday experience with computers and programming leads to observations like the following:

• General-purpose computers and general-purpose programming languages can be built.

• Different programs for doing all sorts of different things can be set up.

• Any given program can be implemented in many ways.

• Programs can behave in complicated and seemingly random ways—particularly when they are not working properly.

• Debugging a program can be difficult.

• It is often difficult to foresee what a program can do by reading its code.

• The lower the level of representation of the code for a program the more difficult it tends to be to understand.

• Some computational problems are easy to state but hard to solve.

• Programs that simulate natural systems are among the most computationally expensive.

• It is possible for people to create large programs—at least in pieces.

• It is almost always possible to optimize a program more, but the optimized version may be more difficult to understand.

• Shorter programs are sometimes more efficient, but optimizations often require many cases to be treated separately, making programs longer.

• If programs are patched too much, they typically stop working at all.

From Stephen Wolfram: A New Kind of Science [citation]