The First Computer Programmer

Christina Burger
5 min readFeb 10, 2019

Charles Babbage was considered something of a “Da Vinci man” and like many other Victorian scholars was a prolific inventor. His inventions ranged from the ophthalmoscope, used for eye exams, to the “cow catcher” — a bar that is placed on the front of trains to clear obstacles. But he is most well known as the “father of the computer”. He was not, however, the first programmer.

In the 1820s Babbage and his contemporaries noticed a problem. At the time, polynomial equations could not be solved quickly and accurately, since this was before calculators and computers were cheap and widely available.

Charles Babbage — via Wikimedia Commons

Instead, scientists, navigators and engineers relied on books printed with tables of inputs and outputs for commonly needed computations. Babbage discovered that the accuracy of these books varied because the values were calculated manually and that no two books ever gave the same answers for the same inputs.

Mathematical Tables — via Wikimedia Commons

The Difference Engine

Babbage set out to invent a machine that could produce these tables accurately and efficiently. The Difference Engine he designed could calculate the result of up to 7th order polynomials reliably and repeatably. The machine was designed to print the answers on paper sheets, as well as produce wax plates that could be used to make as many copies as required.

London Science Museum replica of the Difference Engine — via Wikimedia Commons

The Difference Engine was named after Newton’s method of Divided Differences. If enough data points on a polynomial function are known, the rest of the results can be calculated through simple operations. The inputs to the difference engine was a series of known values for the functions, as well as the differences, from the 1st difference until the n-th, until such a point as the difference is a constant. At that point, the rest of the values can be calculated going from right to left. As seen below, the result for p(x) at 22 would be 11 + 4 = 15, and so on.

Since the machine could calculate the results of polynomial functions, and since polynomial functions can be used to approximate trigonometric and logarithmic functions, the machine could tabulate many useful equations.

Using these principles, the machine could very easily calculate outputs for a range of inputs, and reproduce them for publishing.

Unfortunately, Babbage was an obstinate and tiresome person, who didn’t take well to criticism. As an example of his nature, he once wrote a note to his friend Tennyson on his poetry, citing:

“In your otherwise beautiful poem one verse reads,

Every moment dies a man,
Every moment one is born.

If this were true the population of the world would be at a standstill. In truth, the rate of birth is slightly in excess of that of death. I would suggest:

Every moment dies a man,
Every moment 1 1/16 is born.

Strictly speaking the actual figure is so long I cannot get it into a line, but I believe the figure 1 1/16 will be sufficiently accurate for poetry.”

Due to his nature, he struggled to find support and funding to build his Difference Engine. He never produced a full-scale version of his design. Only 200 years after his death London Science Museum built a working version of his design, based on his notes.

Enchantress of Numbers

Babbage met Ada Byon through a mutual friend. Ada was the daughter of Lord Byron, the poet, and his wife Annabella Millbank.

Ada, Countess of Lovelace — via Wikimedia Commons

Annabella was bitter at her husband for his infamous bad-boy nature and set out to educate her daughter in the sciences. Her inquisitive nature and education lead to Ada forming a life-long friendship with Babbage. She was passionate about Babbage’s mechanical computer and its implications. Babbage, a difficult man for most to get along with, felt similarly about Ada. In one of their letters, Babbage wrote:

“Forget this world and all its troubles and if possible its multitudinous Charlatans — every thing in short but the Enchantress of Number.”

In the late 1830s, Babbage travelled to Italy and gave a lecture on his latest invention — the next iteration on his Difference Engine. A young engineer took notes on the device called the “Analytical Engine” and published it in a French journal. During that time Ada kept in touch with Babbage, but was kept fairly busy settling into married life and having children.

Ada was tasked to translate the paper into English, which she did, as well as annotate it with her own insights. With her extremely detailed and verbose notes, Ada managed to see the potential of the Analytical Engine. She detailed a process to compute Bernoulli numbers using the engine. It is because of this “algorithm” that she is known as the world’s first computer programmer. Although Babbage documented some example usages of his new engine, few of his examples were as elegant and exhaustive as her algorithm.

The Analytical Engine would have been the size of a locomotive, and prohibitively expensive to build. It included an arithmetic logic unit, conditional branching and loops, and integrated memory, making it an early general-purpose computer.

Ada saw that this machine could be “programmed” to do much more than mathematics. In her notes, she wrote:

“Supposing, for instance, that the fundamental relations of pitched sounds in the science of harmony and of musical composition were susceptible of such expression and adaptations, the engine might compose elaborate and scientific pieces of music of any degree of complexity or extent.”

Ada Logo — via Wikimedia Commons

The name of the programming language “Ada” most famously memorialises her contributions to computer science.

At a time when “not even Countesses were supposed to count” (Sadie Plant), Ada Lovelace understood that computers could do far more than her contemporaries could envision. Babbage’s work, along with the help of Ada Lovelace, formed the basis of modern computer science.

This article is part of a series of stories about the history of women in tech I’m writing in preparation for my talk at DevConf 2019

--

--