A computer is a mathematical machine, mathematics made physical. It is built of logic gates, devices which compute certain outputs as mathematical functions of their inputs. This is what they are designed to be, and in comparison with all the other physical devices mankind has contrived, they operate with phenomenal reliability.
Mathematics operates with absolute certainty. (Anyone quoting Eliezer’s password is invited to go away and not come back until they’ve devised a new foundation for probability theory in which P(A|A) < 1.) Physical realisations can fall short. But an ordinary desktop computer can operate for weeks at a time without any hardware glitches. If you multiply the number of gates by the clock speed by the duration, that comes to somewhere in the region of 10 to the 24th operations—approximately Avogadro’s number—every one of which worked as designed. When your program goes wrong, hardware error isn’t the way to bet.
If the basic semiconductor gate were not so reliable, if each gate failed “only” one in a million times, you would be having millions of errors every second and computing on the scale of today would hardly be possible. This is one reason we don’t use valves any more. (Another is that they’re too big.) Above a certain size, the proportion of operating time taken up by replacing burnt-out valves approaches 100%.
Programs constructed on top of that hardware are themselves mathematical objects, physically realised. When you write a program to accomplish a precisely defined task, if you get the program right, it will do the right thing every single time. It will not be “stressed” by hard inputs, as a bridge is stressed by a heavy load. It will not need to be “maintained”, as a car must be maintained. These physical metaphors do not apply to mathematical objects. A correctly written program “just works”, a hacker expression of high praise.
This is not an easy thing to accomplish. It can be accomplished, but a prerequisite is to realise that you are engaged in a mathematical activity, and to know how to approach the task as such.
The mathematical nature of the discipline was recognised from the very start by the founders of computing. Turing and von Neumann were mathematicians, and von Neumann explicitly referred back to Leibniz’s idea of a calculus ratiocinator, in the sense of both a mechanical method of reasoning and a machine for performing it. That reached its mathematical fulfilment in the late 19th and early 20th century with the development of mathematical logic, and its physical fulfilment with the development of the general purpose computer.
How so?
A computer is a mathematical machine, mathematics made physical. It is built of logic gates, devices which compute certain outputs as mathematical functions of their inputs. This is what they are designed to be, and in comparison with all the other physical devices mankind has contrived, they operate with phenomenal reliability.
Mathematics operates with absolute certainty. (Anyone quoting Eliezer’s password is invited to go away and not come back until they’ve devised a new foundation for probability theory in which P(A|A) < 1.) Physical realisations can fall short. But an ordinary desktop computer can operate for weeks at a time without any hardware glitches. If you multiply the number of gates by the clock speed by the duration, that comes to somewhere in the region of 10 to the 24th operations—approximately Avogadro’s number—every one of which worked as designed. When your program goes wrong, hardware error isn’t the way to bet.
If the basic semiconductor gate were not so reliable, if each gate failed “only” one in a million times, you would be having millions of errors every second and computing on the scale of today would hardly be possible. This is one reason we don’t use valves any more. (Another is that they’re too big.) Above a certain size, the proportion of operating time taken up by replacing burnt-out valves approaches 100%.
Programs constructed on top of that hardware are themselves mathematical objects, physically realised. When you write a program to accomplish a precisely defined task, if you get the program right, it will do the right thing every single time. It will not be “stressed” by hard inputs, as a bridge is stressed by a heavy load. It will not need to be “maintained”, as a car must be maintained. These physical metaphors do not apply to mathematical objects. A correctly written program “just works”, a hacker expression of high praise.
This is not an easy thing to accomplish. It can be accomplished, but a prerequisite is to realise that you are engaged in a mathematical activity, and to know how to approach the task as such.
The mathematical nature of the discipline was recognised from the very start by the founders of computing. Turing and von Neumann were mathematicians, and von Neumann explicitly referred back to Leibniz’s idea of a calculus ratiocinator, in the sense of both a mechanical method of reasoning and a machine for performing it. That reached its mathematical fulfilment in the late 19th and early 20th century with the development of mathematical logic, and its physical fulfilment with the development of the general purpose computer.