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.
New to BearPeak?
- Explore our software studio.
- Learn more about us.
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.
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.
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 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.
Comments