Why software is eating the world
How Alan Turing started the most profound revolution in history
Marc Andreessen said “software is eating the world”. I agree with him, but many people haven’t yet grasped what this really means.
The rise of software is the most profound change in human history, it will alter the world we live in beyond recognition. It is not just about a few smartphone apps and successful startups, it is a completely new type of machine that will become the way in which almost all human activity is conducted.
All this is the legacy of a British mathematician and codebreaker called Alan Turing.
A most unlikely revolutionary
Alan Turing led a remarkable life. His work in the 1930s laid the foundation for all of computer science. He invented and defined the discipline of artificial intelligence. And in-between he broke the German Enigma Code during WWII; Churchill later said “Turing’s work was the greatest single contribution to victory in the Second World War”.
He was a quiet, even shy man who was deeply interested in understanding how the world works. He studied machines, mathematics and biology. Most of his published work is extremely complex and even esoteric, but the implications are profound. We are only just starting to realise how much we live in Turing’s world.
What is a machine?
A machine is an artificial tool that uses energy to perform a single task. That phrase “single task” is key: a Saturn V is very good at launching satellites into orbit, but terrible at hemming a dress; compare that to a sewing machine, that will lay down a mean embroidery stitch, but utterly fail to get you to the moon.
The earliest machines appeared around 3,000 years ago. For most of the subsequent 30 centuries, machines have had a single purpose. The number and complexity of machines has grown rapidly, especially since the industrial revolution, but machines have — almost without exception — done one thing.
In 1936, Turing published his paper “On Computable Numbers, with an application to the Entsheidungsproblem”. More than a decade before the first digital computer, he described the simplest possible computing machine, and defined what it’s potential and limitations were. More importantly he introduced the Universal Turing Machine.
Computers and Universal Machines
Computers are unique machines — their function is determined completely by the instructions they are given. By loading different programs, I can make my computer do completely different things. When I load Excel I have a spreadsheet machine; load Picassa and it is an image editing machine; load Chrome and it is a machine to browse the web.
Turing formalised the idea of a programmed machine. He also showed there is a special sort of program that such a machine can run. This program can itself run programs — exactly the same programs that the original machine runs.
This is the Universal Turing Machine — a programmable device capable of running a program that itself can run any computer program, including, in turn, a Universal Turing Machine.
All modern computers are Universal Turing Machines.
A key point is that a program operates exactly the same way whether it is running on a hardware or a software Universal Turing Machine. The computer is not the physical silicon chips; the software is the computer.
These software computers are utterly unlike other machines. They are programmable and universal. They are capable of infinite variety. When you write software you are limited only by your imagination and skill, not the laws of physics that all other machines must obey.
The ability to instantly and completely change the function of the machine is why software is eating the world.
The impact of machines
Humanity has gone through a series of important and accelerating changes as new technologies have been introduced.
Ploughs allowed us to move from being hunter-gathers to settled, literally civilized people. Sanitation systems rid us of many diseases and greatly increased the average lifespan. Mills made clothing cheap and uniform, and gave employment to millions. Steelmaking allowed the construction of more complex machines, and denser cities. Railways allowed people to travel and further accelerated the move to the cities. The telephone allowed you to communicate with people no matter where they lived.
The impact of these technologies has been huge. But, the introduction of computers is the largest change we have yet experienced. The impact of an infinitely flexible machine is enormous. These machines are pervasive: in your pocket, on your desk, in your TV set, in every factory in the land.
The software is the machine, and software is both endlessly malleable and free from physical limitations. This means we can improve our software machines at a phenomenal rate. The cost of updating software is tiny compared with building the next generation of physical machine. The range of tasks the software machines can perform is almost unlimited.
We are already seeing large parts of work and leisure happening in the medium of software. This trend will accelerate, until almost everything will be either a software artefact, or be controlled by software.
Code will be the common language of all human endeavour. Within our lifetimes, virtually every business will be primarily a software business.
This is why software is eating the world.