Charles Babbage designed the Analytical Engine for thirty years. He never finished it. Ada Lovelace wrote programs for it that never ran. A hundred years later Turing and von Neumann reached the same conceptual point using vacuum tubes and a war. The mechanical road was abandoned. But the idea — separating program from machine — survived.
From Difference to Analytical 1834–1837
While Babbage was still fighting with the Treasury and his engineer Joseph Clement over the Difference Engine, he started sketching something bigger. Not a calculator for one kind of computation but a general-purpose machine — one that could perform any sequence of arithmetic operations the operator chose to load onto cards. He called it the Analytical Engine. The Treasury, having spent £17,000 on the unfinished Difference Engine, declined to fund it.
Borrowing the cards 1836
Babbage's key insight was to adopt Jacquard's punched-card mechanism — already running in thousands of Lyon textile mills — to specify computation. Two separate card chains: operation cards selecting which arithmetic step to perform, and variable cards selecting which Store columns to read or write. The combination is exactly the distinction between program and data that every computer makes today.
"The Analytical Engine weaves algebraic patterns just as the Jacquard loom weaves flowers and leaves."
— Ada Lovelace, Note A to Menabrea's Sketch of the Analytical Engine, 1843
Ada Lovelace 1815–1852
Lovelace was 27 when she translated L. F. Menabrea's Sketch of the Analytical Engine from French for an English engineering journal and, at Babbage's suggestion, added Notes that ended up three times the length of the original article. Note G describes an algorithm for computing Bernoulli numbers on the Engine — 25 operation cards using 7 working variables. It is widely cited as the first published computer program.
What Lovelace actually understood, two notes earlier, was that the Engine wasn't a machine for arithmetic. It was a machine for operations on symbols whose physical meaning was arbitrary. Music, algebra, logic — anything whose rules could be made formal. That insight took the world another century to catch up with.
The branching chain design feature
The mechanism that elevates Babbage's Engine from "automatic calculator" to "computer" is a small one: the operation card chain has a backing chain that can reverse direction, conditionally, depending on the sign of the Mill's last result. With a backstep you have loops. With loops you have iteration. With iteration and conditionals you have everything a Turing machine has, minus the unbounded tape. Babbage and Lovelace both understood this.
What this simulation shows
The three programs available in the controls — sum of squares, Fibonacci, factorial — are all loops with conditional termination. They are not Lovelace's Note G itself (a literal port needs signed values and fractional arithmetic, which our integer-only Mill cannot do without v1.x extensions). They demonstrate the same algorithmic structure Note G argued for: multi-variable iterative computation on a stored program. The Fibonacci program in particular runs in five instructions plus a backstep — the same shape as the loops Lovelace described.
Plan 28 2010–present
John Graham-Cumming and Doron Swade are leading the project to actually build the Analytical Engine — cataloguing the Babbage Papers digitally, deciding which design state of the engine (Babbage iterated through 30 numbered Plans) to construct, raising funds. If they succeed, Lovelace's Note G will run, 180 years late, on the machine it was written for.
Babbage designed the first computer in 1837. Lovelace wrote programs for it in 1843. The first electronic computer ran a program in 1948. The wait was a century, and it had nothing to do with whether the idea was correct.
Sources: Lovelace, Notes A–G to Menabrea's Sketch of the Analytical Engine (1843); Babbage, Passages from the Life of a Philosopher (1864); Swade, The Difference Engine (2001); plan28.org. Full list at docs/sources.md.