The history of computer programming can be traced back as far as the history of computers themselves, possibly even before. Although it may come as a surprise to some, many of the first computer programmers were women, and almost all were controversial.
So, who was the first computer programmer and what was the first computer programing language? Keep reading to find out!
TL;DR
The first computer programmer...
Clockwork is the first example of programming. The Jacquard Loom punch card system (1804) is likely the first example of a binary system. Ada Lovelace wrote the first computer programs (1840s). Lovelace was also the first person to suggest that computers could be more than just calculators. Grace Hopper developed LOW-MATIC, the first system that could convert plain English into computer code (1952).
Who was the first programmer?
Clockwork devices are probably the first know first examples of "programming". The earliest known example is the Antikythera mechanism (200 BC -- 70 BC). For this reason, no one can say for sure who the first person to program a machine really was.
Before electronic computers, there were human and mechanical computers and of course, clockwork devices. Many clockwork devices were so intricate that they could be "programmed" to complete a series of complex tasks, such as dancing or writing.
"The Writer", an automaton (mechanical doll), designed and built in the 1770s by Pierre Jaquet-Droz, a Swiss watchmaker, is one particularly spectacular example.
The Writer, Automaton by Jaquet-Droz, musée d'Art et d'Histoire de Neuchâtel Rama, CC BY-SA 2.0 FR, via Wikimedia Commons
The Writer could be "programmed" to write different letters with a quill. Each gear represents a different letter. The Writer consists of some 600 different parts. Incredibly, it still works to this day. You can see him in action at the Musée d'art et d'histoire, Neuchâtel, Switzerland.
The First Binary System and the Birth of Programming
The Jacquard Loom punch card system, patented in 1804, is probably the first known example of the binary system, or at least an on/off instruction format. The system made it possible to automate the process of weaving different patterns into material.
Jacquard Loom punch card system.
How the Jacquard Loom punch card system works:
To weave cloth on a loom a thread (weft) is passed over and under another set of threads (the warp). To create different patterns, differently colored warp threads, are positioned above or below the weft. Before the invention of the Jacquard Loom punch card system, a weaver's assistant had to manually raise and lower different threads at each row to create the pattern. This was extremely time-consuming!
The Jacquard Loom Punch card system automated this. The principle was very simple: a series of punched cards were fed into the loom. If there was a hole in the card, the needle rose, if there was no hole, the needle stayed down. The shuttle then traveled across the loom creating a pattern in the fabric.
The design was first created on squared paper. The card maker then programmed the cards based on the design. It might surprise you to learn that no hole in the card indicated a colored square and a hole indicated a blank square.
Punch cards were later used to store other types of data and, in 1890, were even used to store US census data. They formed the basis for early computer programming as they provided a way for humans to "talk" to a computer. Gradually, cards transformed to punched tape, to magnetic tape, to discs...
Young woman working with punch cards.
Although the system was patented by Joseph-Marie Jacquard, it was actually developed by Jacque de Vancason. The system takes its name from the looms it was used on; Jacquard Looms.
Morse Code
Although some people might assume the morse code is the first binary system, this is incorrect. A binary system has only two "symbols" -- on and off. Morse code uses dots, dashes, and spaces. Additionally, it's customary for people to send morse code with slightly longer gaps between letters and even longer gaps between words. Effectively creating a system with 5, or even 6, different "symbols".
Who was the first computer programmer?
Ada Lovelace aka Augusta Ada Byron-1843 or 1850 a rare daguerreotype by Antoine Claudet. Antoine Claudet, CC BY-SA 4.0, via Wikimedia Commons
In the 1840s, Ada Lovelace became the first computer programmer, inspite of the fact that the Analytical Engine (the computer that she designed the programs for) wasn't ever manufactured.
She was also the first person to suggest that a computer could be more than just an oversized calculator! Her radical idea was that the numerical values produced by the computer could be used to represent something other than numbers: symbols, musical notes or well, pretty much anything... not everyone was convinced.
On June 5, 1833, Lovelace (17) first met computer pioneer, Charles Babbage (40) at a party in London. The two began an unlikely friendship. Despite the incredible powers of Babbage's machines, it took Lovelace to realize their full potential.
In 1842 Luigi Federico Menabrea wrote a paper on Babbage's Analytical Engine. Lovelace translated it from French (8,000 words) into English and added her own notes (20,000 words). Her translation included the first "computer program" and was published in 1843. The computer program gave plans for a series of punch cards that could create a long sequence of Bernoulli numbers.
The Analytical Engine, conceived by Babbage in 1834. Only part of the machine was completed before his death in 1871. This is a portion of the mill with a printing mechanism.
Although notes have been found in her own handwriting, many scholars have sought to discredit her. Some speculate that this is because she, was a woman mathematician.
A new, a vast, and a powerful language is developed for the future use of analysis, in which to wield its truths so that these may become of more speedy and accurate practical application for the purposes of mankind than the means hitherto in our possession have rendered possible. Thus not only the mental and the material, but the theoretical and the practical in the mathematical world, are brought into more intimate and effective connection with each other. -- Ada Lovelace
Could she have possibly imagined where we would be today?
Alan Turing
Of course, no article on the history of computer programming would be complete without a mention of the father of theoretical computer science himself: Alan Turing
Alan Turing Inventor of modern computing.
In 1936, before computers were even capable of such complexity, Turing (23) wrote a paper that was to forever define computer science: "On Computable Numbers, with an Application to the Entscheidungsproblem". The paper proved, theoretically at least, that a "universal computing machine" (Turing machine) could, in theory, calculate any mathematical computation, so long as it was given the correct algorithm.
Throughout his mind-blowing career, Turing helped reduce WWII by an estimated 3 years, wrote several more papers that still define the way we think about computer science, and worked on the development of many of the earliest computers.
Like so many early computer pioneers, he was not without his controversy. He faced backlash and constantly struggled to convince many of the importance of his work. Additionally, his life ended in tragedy at 41. Many speculate that, due to persecution for his homosexuality, he committed suicide. However, the evidence is unclear.
The First Computer programmer (on an electrical computer)
Konrad Zuse, first computer programmer -- on an electrical computer.
1941, Konrad Zuse became, what was probably, the first person to program an electrical computer and, unlike Lovelace, the computer was actually able to perform the operation!
While Alan Turing was busy cracking the enigma code, his German "counterpart"; Zuse was developing the Z3; the world's first working electromechanical programmable, fully automatic digital computer. The computer was fed programs with a strip of film. Much like the Jacquard Loom system, the film was punched with holes.
Early computer programmers
In 1945 the first full-time, paid computer programmers, charged with the ENIAC (the first electronic general-purpose digital computer) were Kay McNulty, Betty Jennings, Betty Snyder, Marlyn Wescoff, Fran Bilas and Ruth Lichterman, chosen from a pool of human calculators at Moore School of Electrical Engineering, Pennsylvania. Again they struggled to receive recognition for their achievements during their lifetime and were dismissively labeled "refrigerator ladies".
The first paid computer programmers; Betty Jean Jennings (left) and Fran Bilas (right) operate ENIAC's main control panel at the Moore School of Electrical Engineering. (U.S. Army photo from the archives of the ARL Technical Library)
As there was no programming language at the time, the ladies studied the blueprints of the machine and used a series of external switches and dials to program the machine.
The First Computer Programming Language
In 1952 -- American computer scientist, Grace Hopper, developed a system that could convert plain English into computer code. This would later become COBOL, a computer language still widely used today for data processing!
The mother of computer programming; Grace Hopper at the UNIVAC keyboard, c. 1960 Unknown (Smithsonian Institution), CC BY 2.0, via Wikimedia Commons
COBOL was designed for the UNIVAC I (one of the first large-scale electronic computers). As with other early computer programmers, Hooper faced a backlash. When she first suggested the idea, people were dismissive and informed her that computers "couldn't understand English".
It's much easier for most people to write an English statement than it is to use symbols. So I decided data processors ought to be able to write their programs in English, and the computers would translate them into machine code. -- Hooper
Univac I at Census Bureau with two operators ca. 1960 U.S. Census Bureau employees, Public domain, via Wikimedia Commons
First Computer Virus
The first computer virus, called the Creeper, appeared in 1971. It was designed by Bob Thomas.
Compared to modern computer viruses, it was relatively harmless. It simply copied itself onto hard drives and displayed a dialog box that read "I'm the creeper: catch me if you can". It caused no damage to the data already stored on the computer.
The First Anti-Virus Software
In 1972 the first "anti-virus" software; the Reaper, was created in direct response to the Creeper. It was created by Ray Tomlinson (the man who also designed the first email system). The Reaper was a computer program "antidote" that moved between computers deleting instances of the Creeper from hard drives.
The future of computer programming
These days it's hard to imagine a world without computer programs and computer programming. From your smartphone to the software packages used to design it, like BricsCAD, everything we touch, see and interact with has been created with the help of computer programming. It's amazing to think that the first computer programmers faced persecution and backlash.
With so many women playing a key role in the early days of computer programming, it's quite amazing to learn that in 2020 only 8% of computer programmers were women. Women programmers also have the 8th highest gender pay gap. However, with many young women showing an interest in STEM, things may once again swing the other way. Only time will tell!
Who was "the world's first computer programmer"?
Who do you think deserves the title of the world's first computer programmer? Ada Lovelace, with her theoretical plans? Jacque de Vancason, inventor of the punchcard system? Maybe even computer scientist Grace Hopper? Let me know what you think in the comments.