Think 'IT revolution' and you're thinking of the second half of the 20th century – right?
From the first stored-program computer in 1948 to the blossoming internet of the late '90s, it seems obvious that it's the most recent half-century that transformed computing from an expensive curiosity for the few to a life-changing experience for the many.
So you might be surprised to hear that much of the pioneering work that made all this possible was carried out during the reign of Queen Victoria.
Boolean logic, programming languages, data transmission, radio communication, universal computation, data compression – these building blocks of the IT revolution have their roots in Victorian society.
The Analytical Engine
Given that he has a track record of never completing any of his inventions, the British mathematician Charles Babbage provides an unlikely starting point for our investigation into Victorian computer pioneers.
Babbage's first foray into computation involved the design of the so-called Difference Engine, which was intended to calculate polynomial functions for navigation and artillery applications. It was never finished in Babbage's lifetime, but the successful creation of a machine built to his original plans by the London Science Museum in 1991 vindicated the design.
Impressive as it may be for a machine weighing almost five tons and comprising 8,000 parts to work without a glitch, it's Babbage's second contrivance, the Analytical Engine, that really makes things interesting.
While the Difference Engine was dedicated to one type of calculation, the Analytical Engine was designed to be universal, just like today's computers. Except for the fact that it relied on mechanics rather than electronics, the similarities are striking for something conceived of in 1837, 121 years before the first electronic stored-program computer.
Like today's PCs, the Analytical Engine used a sequence of instructions to process data. Both the program and the data were input using punch cards similar to those used at the time to control looms in wool mills (and used in mainframe computers until the 1970s). Results could be output to a printer, a graph plotter or more punch cards so that they could be fed back into the Engine.
In a direct parallel with modern computers, it had a memory that Babbage called the 'store', which had a capacity of 1,000 50-digit decimal numbers. It also had an arithmetic unit that he called the 'mill', which was capable of addition, subtraction, multiplication, division and comparison.
It was also capable of looping and conditional branching, although it seems probable that the importance of this hadn't been fully appreciated by Babbage until he made the acquaintance of Ada Lovelace, as we'll see shortly. Fascinating as the similarities with today's technology are, the differences also make interesting reading.
The Analytical Engine was to have had a steam engine as its power source. It would have carried out additions and subtractions in about a second, but could have taken up to a minute to perform division and multiplication. Speedy it certainly wasn't.
Ada Lovelace's computer program
Augusta Ada, Countess of Lovelace and daughter of the poet Lord Byron, didn't fit into the mould of Victorian society. Instead of excelling in needlework, embroidery and entertaining on the pianoforte, Ada's skills were in the realm of science and mathematics.
She was introduced to Charles Babbage at a dinner party in 1833 and they corresponded for several years, discussing first the Difference and later the Analytical Engine.
In 1942, the Italian mathematician Luigi Menabrea, whom Babbage had met a year earlier, wrote a paper entitled A Sketch of the Analytical Engine Invented by Charles Babbage. Ada Lovelace translated the article into English and, at Babbage's request, expanded it with very extensive notes of her own. Much impressed with her understanding of his creation, Babbage referred to her as the 'Enchantress of Numbers'.
But Countess Lovelace's greatest contribution to the science of computation was an example that she provided in her notes to Menabrea's article of how the Analytical Engine could be used to calculate Bernoulli numbers.
Unless you're a mathematician you probably won't be too interested in exactly what they are, so let's just say that this sequence of numbers, discovered by the Swiss mathematician Jakob Bernoulli, is of significant interest in number theory. What was of particular interest to Ada Lovelace is that they're notoriously difficult to calculate.
Each successive number requires significantly more calculations than its predecessor, and in fact Bernoulli himself only managed to work out the first 10 of the numbers that bear his name.
Ada's instructions for the Analytical Engine, while not looking like a modern computer program, are considered to be just that – the world's very first example. They contain many of the elements of today's programs, including conditional branches and nested loops, or 'cycle of cycles' as she called them.