Unlike some inventions like the airplane (Wright Brothers) and telephone (Alexander Graham Bell), the creation of computer programs isn’t tied to any single name in history. Instead, it was a halting progress that eventually yielded what we think of as computer programming today - the ability to write instructions for a machine in near-English language. Here we'll look at some of the pioneers in this field. (For more history, check out our tutorial on The History of the Internet.)
Babbage and Lovelace
Although mathematics and algorithms are vital to computer programming, we will start with the duo that is most widely credited for both the concept of computer programs and the creation of the first one. Charles Babbage is considered to be the father of the programmed computer. As a mathematician, he understood how all calculations were made up of smaller parts that could be mechanized. To do this, the machine would need an input device, a processor, a control unit and an output device. Babbage conceptualized such a machine and dubbed it the Analytical Engine.
The conceptual Analytical Engine became even more important in computing history when Babbage’s friend, Augusta Ada King (formerly Byron and later to be Lovelace) wrote the first computer program for it. The algorithm-based program she wrote for the Analytical Engine was intended to calculate Bernoulli numbers, and would have worked if the machine had been built. Amazingly, this gem was tucked away in the notes she wrote for a translation she did of an Italian mathematician’s work. So it is that the eventual Countess of Lovelace is widely heralded as the world’s first computer programmer.
The first practical step toward a programmed computer was taken by Herman Hollerith. Hollerith, and the Tabulating Machine Company he founded in 1896, lie at a nexus in computing history. Hollerith’s punch card machines were definitely a step in the direction of a programmed and automated computer, but they also marked the birth of data processing. As if that major contribution weren’t enough, his company also became part of the iconic IBM in the 1920s. As far as programming, however, Hollerith’s punch cards provided a medium by which programming (laborious and slow programming) could take place.
The War Trio: Alan Turing, Konrad Zuse and John von Neumann
It sounds like the start of a joke, but a German, a Brit and a Hungarian greatly advanced the field of computer programing, both in theory and in practice. The Brit, Alan Turing, came up with the Universal Turing Machine, a conceptual machine that could be programmed and reprogrammed to do different tasks. During the war he also designed many single-purpose computers for cracking codes. The Hungarian, John von Neumann, added a description of the architecture that would be needed to create a stored-program computer, giving scientists and academics a to-do list.
Independently of von Neumann and Turing, Konrad Zuse built the first programmable computer using a programming language of his own devising called Plankalkul, which was written in binary. The potential of his computers was largely overlooked by the German military, and Zuse’s prominence in the history of computing has suffered for this reason. The fact that his pioneering work was done in Nazi-era Germany also didn't help his popularity.
Captain Grace Hopper is the last stop in the story of computer programming. Hopper ended her career in the Navy with the rank of admiral, but she is best remembered for her work in computer programming. Hopper created both the first compiler, which allowed programmers to use near-English instead of machine code, freeing them up from having to convert every command into lines of binary code. She also pioneered the concept of a library of subroutines that different programs could call upon, rather than coding these again and again with each program. After Hopper, computer programming became a story of higher level languages that allowed computer programmers to focus more on creating new applications than on learning and composing in machine code.
Looking Back at Computing History
The evolution of computer programming was uneven at best. Babbage and Lovelace came out with a strong concept in the early 1800s, but the next significant step wasn’t taken until Hollerith came up with a consistent medium in the 1880s. During WWII, several major steps occurred simultaneously, with the compiler and the birth of modern programming a scant decade later (1952). Since then, computers and computer programming have progressed at breakneck speeds with the range of applications far outstripping what even the most optimistic pioneer may have envisioned.