Defensive Design for the Web: How To Improve Error Messages, Help, Forms, and Other Crisis Points
Available Now ($16.99)
Subscribe to our free newsletter and receive updates on 37signals' latest projects, research, announcements, and more (about one email per month).
It’s common knowledge that the origin of computers was in mathematics, but what’s less commonly known is that the computer was invented to shed light on a philosophical crisis in the foundations of pure mathematics. Here’s a summary of what happened, with Wikipedia links a’plenty for your perusal.
In the late 19th century, Georg Cantor freaked everyone out with his (theologically inspired) work on infinite sets. Set theory kicked mathematics further up the ladder of abstraction and put its very foundations into question.
[Some people said] Cantor wrecked and ruined mathematics by taking it from being concrete and making it wishy-washy, for example, from hard analysis to abstract analysis. Other people loved this. It was very controversial.
So David Hilbert came along and suggested that all of mathematics should be expressed in a code with rules — a formalism — to avoid the messy pronouns and ambiguities of normal language. Proofs should be expressed in terms of a formal system, and then one can just go down the line applying rules to see if the proof comes out true or not, like a formula. This was the zenith of the idea that mathematics is black-or-white, and that its truths are absolute.
For thirty years everything seemed to be just fine, but then Kurt Gödel had to rain on the formalism parade by doing one of the most incredible things in the history of ideas. He took Hilbert’s formal system and showed that if the system were to make statements about itself, it would break down. It’s like saying:
This statement is false.
Is it true or false? Hmph. Gödel, with his vastly clever Gödel Numbering, was able to trick Hilbert’s formal system into saying:
This statement is unprovable.
Well, if it’s provable, and it says it’s unprovable, we’re proving something that’s false. So that’s not very nice. And if it’s unprovable and it says it’s unprovable, well then, what it states is true, it’s unprovable, and we have a hole. Instead of proving something false we have incompleteness, we have a true statement that our formalization has not succeeded in capturing.
So the idea is that either we’re proving false statements, which is terrifying, or we get something which is not as bad, but is still awful, which is that our formal axiomatic system is incomplete — there’s something that’s true but we can’t prove it within our system. And therefore the goal of formalizing once and for all all of mathematics ends up on the floor!
… You read essays by Hermann Weyl or John von Neumann saying things like this: I became a mathematician because this was my religion, I believed in absolute truth, here was beauty, the real world was awful, but I took refuge in number theory. And all of a sudden Gödel comes and ruins everything, and I want to kill myself!
Ack! This stuff is known as Gödel’s Incompleteness Theorem, and the point is that mathematics isn’t black-or-white. There’s some stuff about which math just can’t make up its mind.
This was devastating in its way, but there was no need to throw the baby out with the bathwater. Hilbert’s idea that proofs could be mechanized into a formal language was still waiting to be tested, and Alan Turing was the man to do it.
Turing has to invent the computer, because Hilbert says that there should be a mechanical procedure to decide if a proof is correct or not. Turing says what Hilbert really means is that there should be a computer program for checking proofs. But first Turing has to say what a computer is, it’s a Turing machine, and all of this is in a paper of Turing’s in 1936, when there were no computers.
So Turing actually invented the computer, on paper, to show that Hilbert’s formalization was still useful. The computer proved that Hilbert’s sytem, though incomplete, was decidable. In other words, if there’s an answer to be found, a decision-making procedure can find it.
For perspective, when Turing wrote a program to play chess 16 years later in 1952, he still had to simulate the computer. It took him half an hour to calculate each move while his colleague played (and beat) his “program”.
A cool story in itself, the computer’s history in pure mathematics is also a lesson to all of us to remember that the most abstract and seemingly impractical ideas can change everyone’s lives.
Last week, the 50th anniversary of Turing’s death was recognized. We owe him one.