Celebrating the 50th Anniversary of the Apollo 11 and the software that made the dream come true
In the occasion of the 50th anniversary of the greatest technological achievement of mankind, the first manned moon landing on the 20th July 1969, DI FCT NOVA and NOVA LINCS associates to the worldwide commemorations, remembering the most amazing cyber physical system ever conceived, the Apollo Spacecraft.
It is worth recalling the very first paragraph of a technical report, written by exceptional innovation scientists, on the Apollo LM guidance software, an effort led by Margaret Hamilton, MIT (Margaret Hamilton, NASA's First Software Engineer), composed by around 145000 lines of code (cf. Apple OSX 86000000 loc).
"This report describes how the Apollo lunar-descent guidance works, why it was designed this way, and, in several cases, how it might have been designed differently. The concepts described can be applied to landing on any planetary body, with or without atmosphere, should man resolve to continue this adventure. The solutions presented offer ample opportunity for checking the theory. Such checks have been made, and all algorithms are known to work as conceived,"
Science, humanism, and outstanding effectiveness, vision, and pragmatism.
The moon landing was just not possible without the man-machine combination: steering the ship from orbit to the landing site was of course impossible to do manually by a human being.
Together with lots of other engineering and science disciplines, such as electronics, physics, materials, structural, mechanical, chemistry, math, you name it, the Apollo program was a quantum leap for computer science, we are proud of.
But of course, what made the impossible possible, was the remarkable collective collaboration effort, focused on the common goal of making the dream a true reality.
The results speak for themselves, without hype. Truly inspiring!
Many fundamental concepts both in computer architecture and systems software present today in every computing device were created in the context of the Apollo program. The software developed, published recently on The GitHub, incorporated mechanisms for real time control, fault tolerance, event-driven interaction, multi-threading and co-routines, energy-saving (green) algorithms, that are present in most computing devices nowadays, including your mobile phone. Development methodologies and software validation methods for critical systems where invented, including the term "software engineering".
As a curiosity, we point your attention to the build date of the final version of the lunar landing guidance software: 14 July 1969, only two days before the Apollo 11 Saturn V lift off, and 6 days before the moon landing. Just in time !!