Coding and computer programming are always changing and evolving. As coder nerds, it’s exciting to think about how we can program computers to do complex things, and to look back into history and see that this has been happening for quite a while. Learn how programmers throughout time have imagined and invented new possibilities with programming and coding, and how they’ve used their (mostly mathematics) skills to make their ideas become a reality – something we deal with on a daily basis, thanks to them. We’ll highlight a few big names and things concerning programming:
Heron of Alexandria
Programming dates all the way back to 60 A.D., to the time of Mr. Heron of Alexandria. This fella was a mathematician and engineer who was known for his amazing inventions and machines. There was one machine in particular that perhaps sparked the evolution of computer programming – this specific machine had puppets on it, and underneath the machine were a series of strings that you could pull, to make the puppets do certain things. By simply re-wiring the machine or re-programming the machine, you could manipulate the puppets to do different things. So, that’s one of the first recorded examples we know of where you could program or change the way something is operated without having to take it all apart and rebuild it.
Joseph Marie Jacquard
Then, as far as computer programming, things went dark for quite some time. There was very little progress for the next 1,800 years or so. It was in France that the next influential programmer came along – Joseph Marie Jacquard – and took programming to the next level by inventing the “Jacquard loom”. If you aren’t too familiar with what a loom is, well, it’s a giant machine that created certain patterns on carpets, rugs, and blankets. Basically, the French dude used a set of punch cards made of metal (much like early computer programming, imagine that) that he would stitch together and run through the loom, and the loom would read these cards and weave a pattern accordingly. Consider Jacquard the loom programmer, if you will.
Towards the end of the 19th Century, someone in London, UK started to create waves in the programming world. He was a mathematician as well (surprise, surprise). Considered by some to be the “father of the computer”, Charles Babbage invented the first mechanical computer, called the analytical engine, that others (whom we’ll mention later) would then use as inspiration in their more complex, electronic designs and computers. But before that invention came to be, he had this dream of a machine that could perform calculations, and he called it the calculating engine. After asking Parliament for a fairly large budget to try and build the thing, he gave up halfway when he had a better idea – the analytical engine.
So of course he went back to Parliament to ask for more money to build his new idea, to which you can probably guess Parliament’s reply – “NO, finish what you started with the calculating engine.” Babbage never did complete the calculating engine after having the better idea to build the analytical engine, and never got the money to be able to build that. So, with the calculating engine only partially built and the analytical engine only designed, Babbage never finished what he started. But, just because it wasn’t built yet didn’t mean you couldn’t write “software” for it – and that’s exactly what one person did, someone who worked very closely with Babbage. Her name was Augusta Ada Byron, Countess of Lovelace – but we’ll call her Ada Lovelace.
Ada Lovelace was – you guessed it – a mathematician, and also technically the world’s first computer programmer, who was intrigued by what Babbage had thought up with his analytical engine. So much so, that after an Italian dude had written a book about the analytical engine, she translated the book from Italian to English, and learned all about how the machine worked. So not only was she good with languages (see where we’re going here?), she was in theory creating a program, or language, for this machine that didn’t technically exist.
Then, like before, progress with programming went quiet for some time until around the middle of the 20th Century, during World War II. This was when progress really started to take off, as far as modern computer programming. While the Germans had the Enigma machines to protect their communication during the war, the British (Allies) had Alan Turing. If you’ve seen the 2014 film The Imitation Game, you may recognize the name. If you haven’t seen the film, you should see it – it has Benedict Cumberbatch in it – but we’ll tell you why he’s important.
Any guesses on Alan Turing’s profession? Yep, another mathematician. Basically, this guy was “The Bombe”. Let us explain. Doing top-secret work breaking military codes used by the Germans and Axis powers, Turin (with the help of his coding team) was able to crack the ever-changing ‘Enigma’ code by inventing a computing machine that helped reduce the work of code-breaking. This machine was called The Bombe. By breaking the code, the Allies were able to understand German naval movements. Definitely Bombe.com, right?
During the later stages of World War II, another British fellow made some progress in computer programming; a guy who actually wasn’t a mathematician, but worked as an engineer in the British Post Office. His name was Tommy Flowers. His job had to do with telegraph relays. If you’re not familiar, basically telegraph relays were a wire that went from point A to point B through electromagnetic currents (a transistor). Tommy Flowers basically took those telegraph relays and built a programmable computer. It wasn’t like a computer we know today, this computer was literally an entire room made up of wires and pulleys, with electromagnetic currents running through it.
This machine was known as the Colossus (it really was colossal). With a few redesigns and copies of the original machine, around ten units helped in code-breaking during the war, giving the Allies a clear advantage in key battles like D-Day in Normandy. Most of them went out of commission after the war. It was actually top-secret and people didn’t really talk about it, and people who didn’t work with it didn’t know about it for quite a while – until the 1950s.
Other than what we know as the Colossus being one of the first computers, the other “first” computer was the “Manchester Baby”. Basically, it had a series of switches and buttons that would light up a range of lights. Compare this to modern-day Raspberry Pi (yes, we have a camp for that).
The 1950s was really when computer programming started to take off with programming languages. The first programming language that really counts as a programming language was something called short code, which was created by someone from the company IBM. With a set of predefined variables, or mathematical expressions rather than instructing a machine, like that of machine code (like what we’d been talking about above). There were actually jobs in the ’50s created to compile these expressions, variables, and operators into short code, called “compilers”. Jobs around computer programming have been in high demand ever since. IBM then built on top of their short code and called it speedcoding. It was an idea to make coding faster and more efficient (funny that in the 1950s, this is what they thought would be the fastest, most efficient way of coding). “Programming time should be minimized,” was IBM’s statement with speedcoding. Then the question arose – “Isn’t the idea of taking symbols and translating them into other symbols essentially what we designed and built the computers to do, and can’t we have the computers automate this?” Well, a couple people answered that question by creating A-0 and Autocode, the first automated computer compilers.
Early Automated Computers
Grace Hopper, a US Navy officer, was recognized for creating the A-0 in the United States, while Alec Glennie from the UK created Autocode. Because this was around the same time and there wasn’t much collaboration between the two countries (and GitHub didn’t exist) with this type of programming development, they both claimed to have created the first automated computer compiler. The first programming language that is actually still around today was created by IBM (again) by a guy named John Backus. The language is called FORTRAN. The problem back then was that you couldn’t just type this into a computer screen because they didn’t have screens, and you couldn’t type this language into the computer, because they didn’t have typing tools like keyboards, either – so you still had to turn it into something that the computer could, well, compute.
Ancient, Native Code Languages
So when FORTRAN was first created, you’d have to encode the language onto a punch card (not much different than that of the loom, from 100 years previous, right?) and then feed them into the computer, and see what happens (and you thought C++ took too long). As FORTRAN still exists, pretty much every programming language in the world–even the ones that we use today–are somehow based off a language created by Backus. He created multiple languages, of which he created a few at a time, that most others came from.