“We’ve learned the hard way that between the word ‘first’ and the word ‘computer’ there are about 19 adjectives”
— John Hollar, Former CEO of the Computer History Museum
The title of this essay is a simple question. One would think it would have a simple answer, but that doesn’t seem to be the case. There are some who would say quite strongly that it is this person or that, but there is little agreement as to which person to give the credit. (The spreadsheet listed at the end of this article includes claims from several contenders’ Wikipedia articles. These claims are remarkably similar, although each is slightly different, and if read carefully, each is probably true.)
Why is it that there is no consensus on such a recent event? After all, if I ask, “Who invented the telephone?” or “Who invented the telegraph?” almost everyone knows the answers: Alexander Graham Bell and Samuel F. B. Morse. (As we shall see, even these answers aren’t as clearly correct as we might suppose.)
The computer was arguably invented within the last 100 years. It shouldn’t be that hard to know the answer. I’m not asking “who invented the wheel?” after all.
I propose to analyze some of the reasons why this question is hard and take a stab at my own answer to the question posed in the title.
The First Contender
I grew up believing that the first computer was the ENIAC built in the 1940’s and invented by John W. Mauchly and J. Presper Eckert, Jr.  They even filed a patent on their invention. There are two problems here. First, their patent was eventually overthrown in court because (according to the court findings) they had taken ideas from an earlier design.  I would argue that I am asking a historical question not a legal one. So court decisions, while possibly relevant, are not definitive.
The second, more serious complaint (at least in my own mind), about the ENIAC as first computer is that the ENIAC is not stored-program. That is to say the ENIAC was not “programmed” by storing instructions in memory. Rather the ENIAC was “programmed” by setting a series of dials and switches and plugging in wires somewhat like a telephone switchboard. Later it did adopt the idea of encoding instructions in numeric form, they were not stored in a read/write memory. 
All modern computers from your Apple Watch to the giant racks of servers at Amazon, Google, Facebook, etc. are stored-program computers. They execute a series of instructions that are stored in memory, generally the same memory that stores the data being processed.
So I say, the ENIAC, while a precursor to the modern computer, is not itself a full-fledged computer, in the modern sense of the word.
The Oldest Stored-Program Computing Device
To find the first stored-program device we actually must go back much earlier to the Analytical Engine, designed by Charles Babbage ca. 1840.  This device’s program was contained in a set of punched cards, which can be considered a form of storage.
The three problems with the Analytical engine’s claim to primacy are (1) It is not electronic or even electro-mechanical. It is entirely mechanical. (2) It was never actually built. And (3) the program is stored in punched cards and not in the engine’s “store”. (True, early commercial computers used punched cards for programs as well as data. But they were input media and were read into memory before they were executed. The memory itself was reusable; the punched cards (whether Babbage’s or IBM’s) were not.
The von Neumann Architecture
John von Neumann wrote a paper in 1945, entitled “First Draft of a Report on the EDVAC”  that included the idea of storing computer instructions in memory. It is largely due to that paper and its concept of storing the instructions in memory, that modern computers are often referred to as “von Neumann machines”. But that, too, is controversial because others, including Mauchly and Eckert had raised that possibility and were collaborating with von Neumann on the “First Draft” mentioned above.
I must add that the “First Draft” is a remarkable paper that described and argued for many aspects of computer design, not only the use of memory to store the program. In this paper he also argued for the use of binary arithmetic, and the necessity of using an all-electronic (as opposed to electro-mechanical) design in order to achieve reasonable speed of computation.
Define Your Terms
As can be seen from the above examples, in order to determine who created the first computer, we have to have a common definition of “computer”.
I would argue that the modern computer has all of the following characteristics:
- General purpose: It can solve a variety of types of problems by being “programmed” i.e. given a set of instructions that represent the procedure for solving the problem at hand. Moreover, the user of the computer can choose which programs to install, and which programs to run. This is to distinguish from an embedded device, which has the other characteristics described below, but is used for a specific purpose.
- Stored program: The set of instructions is encoded in a numeric form and stored in memory along with the data that is being used to solve the problem.
- Electronic: It is made from electronic elements: integrated circuits, transistors, or even vacuum tubes. It is not electro-mechanical, i.e. using relays, nor mechanical (such as Babbage’s analytical engine, or even the abacus).
Of course a computer has other characteristics, but I propose to use the above three as the defining characteristics of a “computer”.
I recognize that some historians and computer scientists would disagree with one or more of the above criteria, but they are the ones I’m using. I submit that all modern usage of the term “computer” at least implies all three of these qualities.
By applying the above three criteria we can eliminate the candidates already mentioned: the Analytical Engine because it was mechanical, and the ENIAC because it was not stored program.
But does this definition resolve the question? Unfortunately, not to everyone’s satisfaction.
Who Came First?
In the 1940s and 1950s many researchers were working on the problems of automatic computation. These researchers include some of the giants of computer science including not only John von Neumann (mentioned above) but also Alan Turing, and Claude Shannon. With so many people working on the problem (and generally collaborating with one another) it’s not surprising that the same ideas (such as stored program) arose in the writings of several people at more or less the same time.
It is sometime maddening to try to determine which one deserves the “original” credit. I recently read a book that says the EDSAC computer was the first computer to use the stored-program idea. But another article says it was the second–without naming the first.
Perhaps this whole question is an exercise in historical nit picking. Many ideas arose at about the same time from multiple individuals. Does it really matter whether the idea of stored-program computers came from von Neumann, or Eckhart and Mauchly, or Turing, all of whom published papers about stored-program computers in the mid 1940s, or even Konrad Zuse who filed two patents on stored-program computers in 1936–ten years earlier than the “first draft” paper that has caused von Neumann’s name to be associated so strongly with stored-program computers?
Of course it can matter financially, as patent holders can become rich and famous, while also-rans to the patent office are soon forgotten. I argued above that such things are legal rather than historical arguments.
Yet, the outcome of such battles can determine the narrative that becomes history. At the beginning of this essay I posed the questions of who invented the telephone and the telegraph. The reason we say that Bell invented the telephone is that he made it to the patent office first. But there is significant evidence that his ideas were preceded by Antonio Meuchi.  And the Morse’s telegraph was preceded by several versions invented in England. 
Reduction to Practice
The phrase, “reduction to practice” is a legal term used in patent law. It means turning an idea into a working machine (or process, etc.) Under U.S. patent law it is not necessary to reduce an idea to practice in order to be granted a patent. In history, I think it fair to give credit to both the originator(s) of an idea as well as those who implement it.
As an example, the idea of storing the program in memory, can go to von Neuman in his “First Draft” paper. Even if it is disputed that von Neumann deserves full credit for the stored-program idea, is indisputable that his paper led a number of groups to start working on implementing ideas found in that paper. The EDVAC computer itself was the specific subject of von Neumann’s paper. But its implementation is preceded by the EDSAC. And that is preceded by the Manchester Small-Scale Experimental Machine, nicknamed “Baby”.  Both the Baby and the EDSAC were directly inspired by von Neumann’s paper, and they both include the stored-program concept.
And the winner is…
So to determine who invented the computer we must deal with primacy, ideas vs. implemtation, and the precise definition of “computer.”
Of all the components of my proposed definition of “computer”, I argue that the “stored program” idea–the concept of storing the computer’s instructions in the computer’s memory is the most important. It is a unique feature among modern inventions, and makes the computer uniquely powerful. Just look at the number and variety of “apps” on your smart phone to get a sense of the flexibility that the stored-program idea empowers. You can switch your computer-in-your-pocket from making a phone call, to showing you the weather, to playing a game, to reading a book, to watching a movie, by simply replacing the program (“app”) that you have stored into memory.
So who came up with the idea of storing computer instructions in memory? The general ideas was first mentioned not by John von Neumann, but by Konrad Zuse, ten years earlier, or even Charles Babbage, a hundred years earlier. But both Zuse’s and Babbage’s devices stored the program in non-erasable media separate from the the data “store” (to use Babbage’s term). In terms of storing instructions in the same kind of memory as the data, then the credit does deserve to go to John von Neuuman and his unnamed collaborators.
Of course, the stored-program concept is not the only component of a computer design. It is not possible to single out one inventor of these broader set of concepts because the ideas came from many people. I would give credit to at least the following set of individuals for contributing to the development of the first computer:
- Gotfried Leibniz – Gave structure to the idea of binary arithmetic 
- Charles Babbage – The first to design a programmable computing machine
- Ada Lovelace – The first to realize that a computing device (specifically Babbage’s Analytical Engine) could be used to solve any symbolic problem, not just numeric computations. 
- George Boole – Inventor of the logical algebra that now bears his name and is a fundamental component of all computer hardware and software 
- Alan Turing – Formalized the concepts of an ideal computing machine.
- John von Neumann – Wrote the “First Draft” describing the design of a computer. 
- Claude Shannon – Proposed in his masters thesis that computers can be designed from components that follow Boolean Algebra.
- Konrad Zuse – Designed and built a number of early electro-mechanical computers
- John Atanasoff – Created early electronic computing devices. Now credited with many of the ideas that went into the ENIAC.
As for implementation there is actually little dispute that the Manchester Small-Scale Experimental Machine, the “Baby” computer, is the first stored-program general-purpose electronic computer. Thus I give the credit for implementing the first computer to Frederic C. Williams, Tom Kilburn and Geoff Tootill, the men to built the “Baby”.
See this spreadsheet for a list of the devices mentioned in this article and how they measure up to the definition I have given here.
 ENIAC: Celebrating Penn Engineering History, https://www.seas.upenn.edu/about-seas/eniac/mauchly-eckert.php
 Judge declares the ENIAC patent invalid, October 19, 1973, http://www.edn.com/electronics-blogs/edn-moments/4398948/Judge-declares-the-ENIAC-patent-invalid–October-19–1973-
 The Babbage Engine, http://www.computerhistory.org/babbage/engines/
 First Draft of a Report on the EDVAC by John von Neumann https://web.archive.org/web/20130314123032/http://qss.stanford.edu/~godfrey/vonNeumann/vnedvac.pdf
 Antonio Meucci http://www.famousscientists.org/antonio-meucci/
 The History of the Electric Telegraph and Telegraphy, http://inventors.about.com/od/tstartinventions/a/telegraph.htm
 “Manchester Small-Scale Experimental Machine”, Wikipedia, https://en.wikipedia.org/wiki/Manchester_Small-Scale_Experimental_Machine#cite_note-1
 “Explanation of Binary Arithmetic” in Memoires de l’Academie Royale des Sciences by Gotried Libniz , http://www.leibniz-translations.com/binary.htm
 “The Calculus of Logic” in Cambridge and Dublin Mathematical Journal, Vol. III (1848), pp. 183-98 by George Boole, http://www.maths.tcd.ie/pub/HistMath/People/Boole/CalcLogic/CalcLogic.html
 “A Selection and Adaptation From Ada’s Notes found in “Ada, The Enchantress of Numbers,” by Betty Alexandra Toole Ed.D. (Strawberry Press, Mill Valley, CA)”, http://www.agnesscott.edu/lriddle/women/ada-love.htm
 Eniac in Action: Making and Remaking the Modern Computer by Thomas Haugh, Mark Priestly, and Crispin Rope. (MIT Press, Cambridge, Massachusetts, and London, England, 2016) (https://smile.amazon.com/ENIAC-Action-Remaking-Computer-Computing-ebook/dp/B01LZCBO85/ref=sr_1_1?s=digital-text&ie=UTF8&qid=1479519175&sr=1-1&keywords=eniac+in+action )
Note: References (4], , , and  are all original writings by the creators of the ideas they describe. I particularly recommend von Neuumann’s “First Draft” .