There have been very notable points during the past century when coding has changed the world for the better, and the programming professionals behind these events are like silent superheroes whose talents have literally changed the course of history and enabled mankind to progress as a species. Here we will take a look at coding in the real world and how it has impacted both history, and the present.
Breaking the Enigma
During World War II, Nazi Germany used a cipher device known as the Enigma Machine to communicate across all branches of the military. This machine was believed to be so secure that even the most high-level, top-secret communications were enciphered using its technology. The ability to communicate freely and securely gave the German forces a huge advantage and it become evident to the opposing nations that cracking the Enigma code was vital to ending the war.
Enigma in use on the Russian front
Image credit: Bundesarchiv, Bild 101I-241-2173-09/Grupp/CC-BY-SA 3.0
Alan Turing was a well-respected and highly talented mathematician, as well as the inventor of the Turing Machine, who was entrusted with the duty of deciphering the military codes used by Nazi Germany and its allies. Turing and a team of specialist experts developed a machine named the Bombe, which was an electro-mechanical cryptanalytical device that significantly reduced the manual work required to decipher messages encrypted with the Enigma code. Along with other intricate code-breaking methods invented by Turing, the Bombe played a critical role in helping to bring the war to an end.
Not such a small step
On July 20th, 1969, the Apollo 11 Lunar Module Eagle, piloted by Edwin “Buzz” Aldrin, touched down on the lunar surface; and just six hours and 39 minutes later, Neil Armstrong became the first person to set foot on the Moon. What is often forgotten is that this momentous event in human history would likely have been aborted if it weren’t for the coding talents of Margaret Hamilton.
Mere minutes before Eagle was due to land on the surface of the Moon, a series of computer alarms were triggered and interrupted the astronauts’ displays. It was still very early in the life of computer technology and the Apollo Guidance Computer became overloaded whilst running tasks for both the radar and landing programs. Neither Armstrong nor Aldrin had come across this particular alarm during their training, but virtually all other alarm codes would result in the mission being aborted. Fortunately for the evolution of the human race, Margaret Hamilton had prepared for this precise situation.
Margaret Hamilton stands next to a stack of Apollo Guidance Computer source code.
Image Credit: MIT Museum
In the 1960s, computer science was not yet taught as a subject and the term “software engineer” had not been coined. But this didn’t stop Margaret Hamilton from teaching herself and increasing her skills with practical experience. Her speciality was developing error detection software and the recovery systems required to resolve the identified problems. Which is precisely what saved the Apollo 11 mission from being aborted.
Hamilton’s priority alarm display software was designed to interrupt the normal displays viewed by the astronauts, which would instantly warn them of a potential problem. This would then provide them with the opportunity to decide on whether to continue the landing process or abort the mission. The alarms triggered due to the computer overloading would previously have led to the termination of the landing procedure, but Hamilton’s work did more than simply warn the astronauts of the error.
The software created by software engineering pioneer, Margaret Hamilton also included a full set of recovery programs set to respond to a wide range of error conditions. For this specific situation, the software recognized that the overloaded computer was unable to complete all its assigned tasks in real-time, and it ended the lower priority tasks, conflicting radar data processing, to focus on the most important task – landing the lunar module safely on the Moon. If this recovery action had not been taken, the Apollo 11 mission would likely have been aborted instead of leading to a giant leap for mankind.
Perseverance is key
Percy, as the Mars rover is affectionately called, landed successfully on the Red Planet on 18 February 2021 and is an excellent example of contemporary coding in action. At a time of global uncertainty and disillusionment, Perseverance has become a symbol of hope and possibility; and the world watched in wonder as this car-sized marvel’s wheels touched down on Martian soil.
With a similar, but upgraded, design to Curiosity, the rover that landed on Mars on 6 August 2012 after a journey spanning 560 million kilometres, Perseverance took with it seven primary payload instruments, two microphones, nineteen cameras, and Ingenuity, the experimental mini-helicopter that achieved the very first powered flight on another planet on April 19th, 2021.
NASA’s Mars Exploration Program sent Percy to the Red Planet with a very important 4-part mission:
- Identify environments that were previously capable of supporting microbial life
- Seek evidence of past microbial life existing in those environments
- Rock and soil sample collection and storage (on Mars)
- Test oxygen production from the native atmosphere to prepare for future human-crewed missions
Every aspect of Perseverance’s mission is made possible by coding. The landing process alone required numerous essential actions such as choosing the landing site, correct positioning of the rover and the sky crane, and the deployment of Percy’s parachute, to name but a few. And once safely on the ground, every action and task performed by the rover is controlled by the code written by tremendously talented and skilled software engineers and computer programmers. Without coding, and those who know how to craft it, the Mars Exploration Program and Perseverance would not exist; nor would we be able to view the progress.
Perseverance selfie with Ingenuity, on Mars – captured on 6th April 2021 by the WATSON camera on the rover’s robotic arm.
Image credit: NASA/JPL-Caltech/MSSS
Coming back down to Earth, we can see examples of coding in our everyday lives, even if we exclude the more well-recognized business applications. Take a moment to look around you and you might be surprised to consciously realize how much of the modern world is controlled by coding.
Waking up to a pot of freshly brewed coffee is possible because coding enables you to set your coffee machine to begin its process at the exact time required for it to be ready when you are. Alarm clocks are set to trigger a wake-up call at a specific time, water heaters use thermostats to ensure that your morning shower is at the right temperature, and your daily commute is regulated safely by traffic lights that are programmed to recognize and adapt to changes in traffic flow.
Cars, airplanes, and trains all require coding to operate. Elevators would not run without the programming necessary to instruct their actions. Even a simple trip to the grocery store comprises more use of coding than may meet the eye. From stock control software, to grocery scanners, to the temperature-controlled greenhouses that supply fruit and vegetables outside of their natural season, almost everything in our refrigerators can be attributed to coding in some manner – as are the refrigerators themselves. Every imaginable household appliance uses programmed triggers to fulfil its purpose. Vacuum cleaners, washing machines, dryers, dishwashers, microwave ovens; the list is almost endless in the modern world. Even our entertainment relies on programmed devices like televisions, game consoles, streaming services, media centres, music players, computers, tablets, and more.
History has proven that even if something seems impossible today, it might be possible tomorrow. And it is the skilled programmers and coding professionals behind the scenes who make modern life possible; and who helped the human race to reach new heights, and new celestial bodies. Technology is ever-evolving and presents us with opportunities to achieve revolutionary feats. As a coding or programming professional, you have the potential to seize those opportunities and do things that are, quite literally, out of this world.