Ada Lovelace Wrote the First Computer Program
Myth

Ada Lovelace wrote the first computer program.

Was Ada Lovelace the First Computer Programer? Who Wrote the First Computer Program?

British mathematician Ada Lovelace can be considered the mother of computer programing, as she wrote the first complex algorithm meant to be carried out by a machine. However, it is a myth that Ada Lovelace wrote “the first computer program” or was “the first computer programmer,” that title belongs to “the father of the Computer” Charles Babbage (who himself built off the work of Pascal, Leibnitz, and Müller, just as Turing would build of all their work later to help create the first digital computers).[1][2][3]

Calculating Ada: the Countess of Computing. A clip from a documentary by the BBC which accounts for Ada’s actual role in computing as well as the research of Doron Swade a computer historian whose focus is Babbage, and who showed that Babbage technically wrote the first computer program. 

FACT: The ancient Greek device, the Antikythera mechanism (circa 200 – 100 BC), is generally considered to be the world’s oldest known mechanical analog computer. The history of non-digital computing stretches back far beyond Lovelace and Babbage, but modern computing starts with them… on-paper at least.

The Actual Story of the First Computer Program

Ada’s friend and mentor Charles Babbage, the father of the computer, wrote the first computer program and the first computer code in 1836 (24 rudimentary, and sometimes error prone, programs; written as notes for his theoretical machines).[4]

Meanwhile Ada wrote her code in 1842, in correspondence with Babbage, as notes on Luigi Menebrea‘s notes on Babbage’s most famous machine the theoretical Analytical Engine. Check Ada and Menebrea’s essay here: Sketch of The Analytical Engine Invented by Charles Babbage.[5][6][7]

All three also worked with others including Babbage’s assistants and a group of Italians, who history doesn’t always name.

“I confirm that the manuscript evidence clearly shows that Babbage wrote ‘programs’ for his Analytical Engine in 1836-7 i.e. 6-7 years before the publication of Lovelace’s article in 1843. There are about 24 of such ‘programs’ and they have the identical features of the Lovelace’s famous ‘program’”. – Computer historian Doron Swade reflecting on his studying of Babbage’s code, as quoted in the article Ada Lovelace: Original and Visionary, but No Programmer.

Thinking Big—Ada Lovelace: Mathematician and Visionary. This video is an in-depth modern look at Babbage and Lovelace. See also: The Scientific Life of Ada Lovelace – Professor Ursula Martin and Charles Babbage and Ada Lovelace – Professor Raymond Flood for more in-depth looks at Lady Lovelace.

TIP: It would be years before anyone built a working Babbage machine or could test the code, but today we can confirm Ada’s complex code was flawless and can accurately calculate Bernoulli Numbers, and likewise Babbage’s machines work in practice (although we can’t always say the same for his code).

Addressing the Ada Lovelace Myth

Today it is common to claim that Ada was “the first programmer”, or “Ada wrote the first line of code” due to the complexity of her code, the accessibility of her code over Babbage’s own code (her code is famous and featured in an image below, his is “confirmed by manuscript evidence”), and almost most importantly her vision of the the Engine as more than just a fancy calculator.

However, the fact that she didn’t actually write the first code means those who claim her as “the first computer programmer” are offering an overly simple account of the otherwise very important and interesting story of Ada, Countess of Lovelace, Daughter of Lord Byron, mother of computer programming and “poetical science“, and one of the first to state that a computer could be used to do more than just crunch numbers (she mused on the idea that it could create anything we know how to order it to preform from music to art).

Charles Babbage and Ada Lovelace – Professor Raymond Flood.

TIP: A hundred years later when Alan Turing asked “can machines think?” he didn’t cite Babbage (although he does discuss him in the paper), he instead cited “Lady Lovelace’s Objection”. Her objection represents the bridge between Babbage’s view of his machines as a “high-powered calculators” and Turing’s view of them as being able to “think”, as she postulated that they could be used for much more than just mathematics, but was limited to doing “whatever we know how to order it to perform”.[8]

Can Machines Think?

Can a computer program think? Can machines think. Turing would say yes, Ada had assumed the answer was no.

Comparing the Programs of Lovelace and Babbage

As noted above, Ada Lovelace wrote one of the first computer programs in 1842, but her mentor Charles Babbage wrote the first program in 1836. Let’s compare these programs.

  • Ada’s program is a set of notes on Luigi Federico Menabrea’s “Sketch of the Analytical Engine Invented by Charles Babbage, Esq.”, showing how Charles Babbage’s theoretical Analytical Engine could calculate Bernoulli numbers using punch cards (see the image below).
  • Meanwhile, Babbage’s notes (containing about 24 programs) are similar, but simpler and sometimes error-prone algorithms (see a detailed breakdown and comparison of Babbage’s and Lovelace’s work; note that we don’t have an image to prove his code, we are relying on computer historians who have studied Babbage and Lovelace).[9]

Due to the supposed simplicity of Babbage’s notes (produced between 1836 and 1837), and the confirmable complexity and of Lovelace’s Bernoulli number program contained in Note G of her Notes (produced between 1842 and 1843), Lovelace is often regarded as the first computer programmer, and thus the internet is filled with headlines like, “In 1842, Ada Lovelace Wrote the World’s First Computer Program“.

The problem is of course, that this version of the story omits Babbage’s programs written years before Ada’s similar, but more complex, program.[10][11][12]

This video from SciShow discusses Ada Lovelace had her contributions to computing.

TIP: Articles like this: Crowdsourcing Gender Equity Ada Lovelace Day, and its companion website, aims to raise the profile of women in science and technology are a pushback against the old days where most of the credit went to Babbage (as he was a man)… Still, we can only imagine Ada herself would be annoyed with us mischaracterizing her partnership with Babbage. She deserves credit for Note. G (despite everyone else working on the project), but her 1842 work can’t reasonably be put before Babbage’s 1836-1837 work).

FACT: Ada Lovelace was the daughter of the famous poet Lord Byron (why she is sometimes called “the Lady of Lovelace”, for instance by Alan Turing). Ada and Lord Byron were aristocracy, as was Babbage.

FACT: Charles Babbage can be considered to be the “father of the computer” due to his work in early theoretical and real computers. Babbage, sometimes with the help of protege Lovelace, is credited with inventing the first mechanical computer (Difference Engine 1822),”the first general-purpose computer” (Analytical Engine 1837), and originating the concept of the programmable computer. We can see why a story that downplays Charles is just as troublesome as one that downplays Ada when we take a good look at the accomplishments of the dynamic duo.

FACT: Between 1842 and 1843, Ada translated an article by Italian military engineer Luigi Menabrea (whom also deserves a nod) on Babbage’s Engine, which she supplemented with an elaborate set of notes, simply called Notes. These notes contain what many consider to be the first computer program, an algorithm designed to be carried out by a machine. Lovelace then did what no one else would for years, she speculated that “computers” could be used for more than just calculations, examining how individuals and society relate to technology as a collaborative tool (what she called “poetical science”). While her title of “first computer programmer” is debated, her title of “computer visionary”, “poetical scientist”, and early programmer is not.[13]

The First Complex Computer Program: Ada’s Note G. Program

Ada Lovelace wrote one of the first executable computer programs for Charles Babbage’s machine (see examples of Babbage’s earlier work here). Ada’s program on Note G., the one claimed to be the “first computer program”, looks like this:

Ada Lovelace's computation engine of Bernoulli Numbers. Note G.Ada Lovelace’s notes. Considered by some to be the first computer program ever written. A computation engine for Bernoulli Numbers. Note G.

FACT: The first analog computer is from around 200 BC, it is called the Antikythera Mechanism. Facts like this are useful to remember when trying to nitpick the story of computer firsts in the 1800’s. There were also mechanical calculators long before Babbage’s machines. Pascal made one in 1642, and we now know there was even one in antiquity.

The Story of Ada and Babbage: The History of the First Computer Program

Ada Byron was a longtime friend of Cambridge mathematics professor Charles Babbage.

Babbage invented the Difference Engine in 1822 (based on an idea by J. H. Müller written down in 1786). The Difference Engine was a theoretical mechanical computer designed to automatically produce error free tables of numbers (something that was historically difficult to do). [14]

Although it would be built in 1985, the Difference Engine was never built by Babbage in his time.

By 1834 Babbage switched his focus to a new project, the Analytical Engine.

The Analytical Engine is today considered “the first general purpose computer”. The Analytical Engine was designed to use punch cards for input and output (just like computers would 100 years later). [15]

The above said, Babbage was never able to build his Analytical Engine either. He was, however, able to give speeches on how it would work in theory.

In 1842 Ada annotated a speech, by her now long time friend Charles Babbage, about the Analytical Engine.

Ada was ambitious and wanted to show how the machine could calculate more conceptual things like Bernoulli numbers (Babbage had thought of the machine as more of a super-powered calculator). Her notes ended up being longer than Babbage’s speech, and the final notes included, among other things, (in Section G) a detailed method for calculating a sequence of Bernoulli numbers.

It was proved nearly 100 years later that her error-free notes worked in practice, not just theory, and thus contained what would later be described (somewhat erroneously) as the world’s first computer program.[1]

Computer Pioneers: Pioneer Computers Part 1.

FACT: A working version of Babbage’s Difference Engine was constructed in 1985–2002 [16] proving his machines worked. This makes Babbage the creator of the first general purpose computer.

Ada Lovelace, the Computer Visionary

To touch on the above point again, one of the most important aspects of Lovelace is her vision of what computers could do (and not her program).

Lovelace started a line of thinking that showed computers can do more than just calculate numbers. Lovelace suggested that the Engine “might act upon other things besides number… the Engine might compose elaborate and scientific pieces of music of any degree of complexity or extent”. The idea of a machine that could manipulate symbols in accordance with rules, and that number could represent entities other than quantity, marks the fundamental transition from calculation to computation in computer history. Later Alan Turning would cite Lovelace in his famous paper on “can machines think?“.

Despite the proper story being a little more complicated and a little less romantic than the one that places Ada as “literally the first computer programmer” and Babbage as the analytical and mistake prone old Codger who Lovelace danced creative circles around, the actual story is equally as important and highlights the importance of teamwork rather than individual greatness.

In the end, Ada’s program, and Babbage’s machine, represent huge leaps forward in computing technology.

FACT: Neither Charles or Ada’s program wasn’t executable until over 100 years later (as actual computers didn’t exist yet). Babbage’s machines weren’t built until the late 1900’s (the Analytical Engine has never been built, but a project is in the works). Today we have proved that Babbage’s theoretical computers worked (meaning he invented the general-purpose computer) and that Lovelace’s programs worked (meaning she was one of the first, if not the first, to write a fully executable computer program). With that said, both are important to the history of computing for more than just being “the first” at something.

FACT: Today we celebrate Ada Lovelace Day to remember her contribution to computer science, and importantly, we remember Charles Babbage (and theoretical computers in general) along with her. [17]

Lovelace, Babbage, Multiple Discovery, and the First Computer Program – Who Deserves Credit?

As noted above, history is a little fuzzy on who should be credited with what in the Babbage / Lovelace relationship. Below are some more considerations to think about when trying to figure out who deserves credit for what.

Ada’s notes contain a complex “computer program” that is still executable today, making her a good candidate for “first programmer”, but If we are being literal, she was predated by Babbage’s more rudimentary coding attempts from years before.

One has to consider that Babbage was detailing his theoretical machines in his notebooks before he even met Lovelace, meaning he really couldn’t have helped but to write the first bits of code (overly simple and full of errors, or not) years before Lovelace’s Notes.

Generally, with most inventions, it is rare that one person invents something. Rather things tend to be invented simultaneously and independently with the most famous of the inventors being given credit for the invention.

Lovelace and Babbage both deserve credit in the creation of what could be considered the world’s first computer program (and let us not forget Menabrea, Babbage’s assistants, and the other Italians who worked with them).

With this in mind, Ada Lovelace herself is certainly not mis-credited with the title of world’s first computer programer by many measures, it is only that the overly simple title really doesn’t hold up under scrutiny.

It is likely today we would consider Babbage and Lovelace a team, like Jobs and Woz, each with different skills that led to an important technological achievement.

Furthermore it is important to recognize the other uncredited people who likely wrote code in and around the same time (remember Babbage and Lovelace were semi-famous aristocracy of sort in their time, more like a Turing or an Einstein).

All this to say, “Ada Lovelace created the first complex computer program, but she wasn’t the first computer programmer, that was the father of the computer Charles Babbage, her friend and partner”. Lovelace is important for lots of things, including her visionary approach to computing, and there isn’t really a need to confuse her story for those who want to explore her character, accomplishments, and times.

TED – Ada Lovelace – YouTube. This video explains the history of Babbage, the Analytical Engine, and Ada’s code. It is a talk given by the guy heading the project to build the Analytical Engine, so it is a smart one to watch.

FACT: Both Babbage and Lovelace have earlier work pertaining to the Analytical Engine and Difference Engine 1 & 2. They both spent their career contemplating these theoretical computers like Pascal had done before them.[2]

FACT: The Analytical Engine is a theoretical computer, the ENIAC is the first working electronic general-purpose computer.



Conclusion

Ada Lovelace was one of the first programers, but it is a mistake to credit things like “the first program” to one person and not recognize others (see multiple discovery theory). In reality Charles Babbage wrote the first bits of code, Ada just improved upon what Babbage was already doing.

Charles Babbage invented his difference engine in 1822 and the first general purpose computer, the Analytical Engine, in 1837 along with some basic code for it.

Meanwhile, Ada Lovelace created the first complex executable computer program as notes for this device in 1842 and 1843 (although Babbage had written earlier more rudimentary codes with errors in 1836 and 1837).

Given they were close friends, I doubt they would want anything other than to share the fame. Furthermore, as they were both mathematicians and computing nerds wanting to push the bounds of science. It is likely they would simply prefer we learned about theoretical computers, and other greats computing including their predecessor Alan Turing, rather then sacrifice one to glorify the other with a mindset that we can only place one figure on a historical pedestal at a time.

If we have to credit one, let us credit Babbage with “firsts” and Ada with “creative improvements”. We can’t ignore the fact that Babbage invents his Difference Engine when Ada (born in December 1815) is not even 7 years old. When the two do begin to collaborate later, it is with Babbage as the mentor and the “Analyst (& Metaphysician)” Lovelace as a star pupil.


References

  1. Ada Lovelace“. Wikipeida.org. Retrieved Oct 13, 2015.
  2. Woolley, Benjamin (February 1999), The Bride of Science: Romance, Reason, and Byron’s Daughter, AU: Pan Macmillan, ISBN 0-333-72436-4, retrieved 7 April 2013. (Found in Wikipedia article).

TIP: See Sketch of The Analytical Engine Invented by Charles Babbage By L. F. MENABREA of Turin, Officer of the Military Engineers from the Bibliothèque Universelle de Genève, October, 1842, No. 82 With notes upon the Memoir by the Translator ADA AUGUSTA, COUNTESS OF LOVELACE.


Citations

  1. Ada Lovelace
  2. Charles Babbage
  3. ANNALS OF THE HISTORY OF COMPUTING
  4. Ada Lovelace: Original and Visionary, but No Programmer
  5. The Babbage Engine – Ada Lovelace
  6. Sketch of The Analytical Engine Invented by Charles Babbage
  7. Luigi Menebrea
  8. A. M. Turing (1950) Computing Machinery and Intelligence. Mind 49: 433-460. COMPUTING MACHINERY AND INTELLIGENCE By A. M. Turing
  9. The Little Engines that Could’ve: The Calculating Machines of Charles Babbage
  10. Ada Initiative
  11. Untangling the Tale of Ada Lovelace—Stephen Wolfram Blog
  12. Ada Lovelace: Original and Visionary, but No Programmer
  13. Ada Lovelace
  14. Difference Engine
  15. Analytical Engine
  16. A Modern Sequel
  17. In Celebration of Ada Lovelace, the First Computer Programmer


"Ada Lovelace Wrote the First Computer Program" is tagged with: Ada Lovelace, Alan Turing, Blaise Pascal, Charles Babbage, Cryptography, Early Computers, Fathers or Mothers of a Field, Feminism, Propaganda, Simultaneous Discovery


Vote Fact or Myth: "Ada Lovelace Wrote the First Computer Program"

Your Vote: {{ voteModel || 'no vote' | uppercase }}

John R. Gibson on

There are many parts to this. How about the invention of the loom or the Greek machine that seems to have calculated orbits!

Thomas DeMichele
Thomas DeMichele on

I agree, funny side note, my grandfather is the guy who discovered “the Greek Machine”: http://factmyth.com/factoids/the-antikythera-mechanism-is-the-oldest-analog-computer/

But good point, I should touch on older computers and astrolabes and such here.

John R. Gibson on

Please add: “No need to be picky.”

Erik on
Supports this as a Fact.

It may be a semantic quibble, but I would argue that there is a difference between “wrote the first computer program” as this article states it, and “was the first computer programmer” as many Ada fans actually argue. The programs that Babbage wrote were akin to the modern “hello world” program that is often a student of computer science’s very first program, in their complexity and apparently bugginess as well. To call yourself a programmer suggests a certain mastery in understanding the abstractions that allow you to apply the tool of the computer to a given real-world problem. Clearly this describes Lovelace as shown by her Bernoulli Number algorithm, but not Babbage for whom such understanding was obviously not a strength.

While Babbage is clearly a genius in his own right, it may be more accurate to call him the first computer hardware engineer and let Lovelace hold the title of the first computer software engineer. Referring them to as such honors both of their contributions, recognizes how they worked together as a team with each bringing their individual strengths, and doesn’t belittle either of them.

Thomas DeMichele
Thomas DeMichele on

Interesting take. I don’t disagree, although I would note that Babbage wrote a few programs, certainly none were as notable, accurate, or complex. Maybe I’ll think of a better way to phrase this so the accomplishments of both are clearer.

What would be great is if we could see all of Babbage’s coding attempts online so we could really do a side-by-side. Wishful thinking I guess, word is he has about 20 simple examples of code… but I’ve only heard of them (meanwhile we can all see Ada’s famous “Notes”.)

Lucifer on

This matters. The people spreading the Ada myth are history revisionists who have hijacked the tech industry; injecting feminist theory and other marxist venom.

I wish I were kidding.

Thomas DeMichele
Thomas DeMichele on

Well I don’t agree with your semantics, but putting that aside, I do understand your point and agree with one point made. That is, I do agree that some tend to be a little revisionist on this matter.

When we look to Apple computers, we should see the story of Steve and Steve (with the Apple), not just Steve.

When we look to the story of these early computers and coders, we should see the story of Lovelace and Babbage, not just Lovelace or Babbage.

The above were dynamic duos with important intertwining stories, and crediting one with the accomplishments of the other is at the very least doing a disservice to both.

Alan Turing didn’t just reference Babbage in his famous imitation game paper, he referenced Lovelace too (and in fact had a whole section on her).

“Our most detailed information of Babbage’s Analytical Engine comes from a memoir by Lady Lovelace ( 1842). In it she states, “The Analytical Engine has no pretensions to originate anything. It can do whatever we know how to order it to perform” (her italics)…

…Let us return for a moment to Lady Lovelace’s objection, which stated that the machine can only do what we tell it to do…”

– Alan Turing
https://www.csee.umbc.edu/courses/471/papers/turing.pdf

What I am saying is that, Lovelace is important enough to be a key inspiration to Turing, but so was the father of the Computer Babbage. Anyone doing a push and pull over Babbage and Lovelace due to gender is doing a disservice to these two people who were close friends and together helped to propel forward modern computing. We can call them the Mother and Father of computing and code, or we can call her the mother of coding and him the father of computing, but we should not conflate their stories.

With that said, I don’t think it is any sort of progressive ideology (be we calling it by polite names or insulting ones) doing this, I think it is people looking for idols in computer history who aren’t taking enough time to research and respect the dynamic of this dynamic duo. Not saying there is no truth in what you say, and I don’t speak for everyone, but the above is my opinion based on all the articles and comments I’ve read on the subject (where most progressive commenters and authors seemed to be coming from a place of good intentions trying to tell the story of the sometimes forgotten Ada Lovelace).