top of page

The History of Programming | Part 1

On the 256th day of every year, we celebrate a very important holiday:


The Day of the Programmer


The date was well-calculated: 256 = 2^8. That means it's the highest power of two under 365 (since anything higher couldn't be a day of the year), the number of distinct values that can be represented with an eight-bit byte, AND the binary number for 1 0000 0000.


To commemorate the occasion, let's take a trip down computer memory lane to some of the earliest computer programmers and their inventions.

1667 | Binary Code | Juan Caramuel de Lobkowitz & Gottfried Leibniz

Juan Caramuel de Lobkowitz, a Spanish Catholic scholar and bishop, published Mathesis biceps in 1667. His study included non-decimal counts that would be instrumental to the binary numerical system.


However, credit for binary code often goes to the self-proclaimed inventor Gottfried Leibniz, a German polymath who published Explication de l'Arithmétique Binaire in 1689. Since he was in connection with Caramuel de Lobkowitz and was known to plagiarize, Leibniz's claims to have created the system independently are presumably false.


1801 | Textile Punch Cards | Joseph Marie Jacquard

Joseph Marie Jacquard needed a better way to weave silk, so he punched cards with holes to select which cords of fabric went through the holes for different parts of a pattern. This solution allowed manufacturers to easily reproduce a design, and later allowed mathematicians like Charles Babbage to store and input data.


1843 | Note G | Ada Lovelace & Charles Babbage

In the United Kingdom, Augusta Ada King, Countess of Lovelace, translated and extensively annotated a French description of lectures given by Charles Babbage, a colleague of hers. Her additions to the paper were longer than the original article itself. One part in particular, Note G, included an algorithm for generating Bernoulli numbers using Babbage's analytical engine machine. That calculation earns Ada Lovelace the title of the first computer programmer.


A photo of a trial model Charles Babbage's Analytical Engine in a display case at the Science Museum in London. The machine is made of metal and wood, and components consist of the mill, the store, the reader, and the printer.
'Babbage's Analytical Engine' trial model displayed at the Science Museum in London. Photo by Rosa Menkman, (License CC BY 2.0, image changes made)

Late 1800s | Analytical Engine | Charles Babbage & Henry Prevost Babbage

Charles Babbage's machine was always a work in progress. He drafted designs for dozens of variations and wouldn't finish a model before jumping to the next. He continued making improvements to the analytical engine until his death in 1871. His son Henry picked up the project, and by 1910, it could calculate a list of multiples of pi (however they weren't entirely accurate).


1936 | The Turing Machine | Alan Turing

The Babbages' ideas were finally mapped out into physical operations by Alan Turing, a scholar at King's College, Cambridge. In 1936, he published a 36-page paper delving into the theory of computation, including an 'a-machine', or what would later be known as the Turing Machine.


The machine is a mathematical model describing an abstract object; It could never be fully built because it requires an infinite strip of tape. The computer has a head that can read one symbol on the tape at a time. On each symbol, the computer can choose to edit it or move the tape left or right.


Turing's machine proved limitations of computers, and nearly all programming languages today are 'Turing complete', meaning the language could simulate a Turing machine.


1942-1945 | Zuse's Computers and Plankalkül | Konrad Zuse

Konrad Zuse was a self-taught German engineer who made groundbreaking additions to computer programming despite being intellectually isolated due to World War II.


Before the war, Zuse was a design engineer at the Henschel aircraft factory, where he was having to do many routine calculations by hand. This led him to experiment with computer construction, and in 1936, he completed the Z1, a floating-point binary mechanical calculator, in his parents' apartment.


Zuse was called to military service in 1939. He was provided the resources he needed to build the Z2 (also built in his parents' flat), but his funding came from a company using his work to make glide bombs.


In 1941, Zuse started his own manufacturing company and rented a workshop, where he improved the Z2 and built the Z3: the first fully-operational electromechanical computer.


Allied Air raids destroyed Zuse's workshop containing the Z3, as well as the Z1 and Z2 in his parents' flat a year later. All Zuse had left was a partial Z4 design, which he was unable to finish until the war was over.


A large brown, grey, and black computer.
The world's oldest surviving computer (Z4) in the Deutsches Museum. Photo by Clemens Pfeiffer, (License CC BY 2.5, image changes made)


While building the Z4, Zuse worked on a PhD thesis that included the first high-level programming language: Plankalkül. He used his program as the first real computer chess engine.


In his lifetime, Plankalkül was not as recognized or admired as Zuse had hoped. But as computer programming evolved, many of the features in the Z4 and Plankalkül reappeared in later languages.


1945-1946 | ENIAC | John Mauchly & J. Presper Eckert, Jr.

The Electronic Numerical Integrator and Computer (ENIAC) was a $400,000 government project built by Americans John Mauchly and J. Presper Eckert, Jr. during World War II. It was the first general-purpose electronic digital computer and marked the shift from mechanical to electronic computation.


The ENIAC filled the 50 by 30 foot basement it occupied, and required tens of thousands of tubes, resistors, and capacitors, and generated so much heat that it needed its own air conditioning.


1947 | Assembly Language and the ARC | Kathleen & Andrew Booth

Kathleen Booth was a programmer's assistant studying abroad in the United Kingdom when she wrote the first assembly code. She and her future husband were planning to create an Automatic Relay Calculator (ARC), so Kathleen created an operation-identifying language with 0s and 1s. Therefore, she provided a human-readable way to program computers using mnemonic codes to represent machine-level instructions. This made it much easier for programmers to write software for early computers.


1949 | Short Code | John Mauchly

One of the inventors of the previosuly-mentioned ENIAC, John Mauchly, proposed the first high-level programming language for use with an electronic computer. He called it Brief Code, and the intention was to simplify the programming process by writing statements as mathematic expressions instead of machine instruction. However, it ran much slower than machine code, so it didn't rise to popularity.


1952 | Autocode | Alick Glennie

The first compiled programming language was developed by British computer scientist Alick Glennie at the University of Manchester. This meant that high-level source code written by programmers could be translated into machine code directly without manual translation or assembly code generation.


1957 | Fortran | IBM

IBM (the International Business Machines Corporation) developed Fortran, short for "Formula Translation". It was the first high-level programming language designed specifically for scientific and engineering calculations. It introduced the concept of compilers, making programming more accessible.


Reflecting on the History of Programming

These inventors and polymaths paved the way for the computers we know today. We hope you enjoyed learning about their creations and celebrated Day of the Programmer! Tune in for Part 2 of this History of Programming for the dozens of back-to-back innovations that occurred in the second half of the 20th century.


If you're interested in learning more, check out our blog and services. At BearPeak, we help startups start up!


Founders work with our startup design studio to bring their idea to life. CEOs onboard our experienced Fractional CTOs for leadership guidance. We also connect startup teams with high-quality software developers. We aren't just recruiters, but engineers first, based out of beautiful Boulder, Colorado.




Works Cited


Cassel, David. “Kathleen Booth, Creator of the First Assembly Language.The New Stack, 4 Nov. 2022.

ENIAC.Encyclopædia Britannica, Encyclopædia Britannica, inc., 9 Aug. 2023.

2022.

Jackson, Joab. “How Alan Turing Set the Rules for Computing.PCWorld, 22 June 2012.

Lestal, Justin. “History of Programming Languages.DevSkiller, DevSkiller, 26 Aug. 2021.

Turing Machine?" Department of Computer Science and Technology, 2012.

Language.History of Information, 26 Aug. 2023.


Photos Used:

Rosa Menkman's 'Babbage's Anaytical Engine' trial model displayed at the Science Museum (London).

Copyright CC BY 2.0. Image changes were made: Cropping and coloring.

Clemens Pfeiffer's 'Zuse-Z4-Totale deutsches-museum.jpg'. Copyright CC BY 2.5. Image changes were

made: Cropping and coloring.


 
It's important for us to disclose the multiple authors of this blog post: The original outline was written by chat.openai, an exciting new AI language model. The content was then edited and revised by Lindey Hoak.
"OpenAI (2023). ChatGPT. Retrieved from https://openai.com/api-beta/gpt-3/"

bottom of page