What I learned from the source code of Apollo Guidance Computer(AGC): A mission that took America to Moon
Thanks to GitHub user Chris Garry (https://github.com/chrislgarry), who took pain and time to get the source code of the Apollo Guidance Computer(AGC), we all now got a chance to have an “inside view of the machine. The simple fact that the program written a and successfully executed even before me or most of the “new era” software developers even born, itself make the case unique.
The program is written in 1969 when there were no code editors, source control, agile methodology or an automation tool for testing. In an era where tools define the quality of the code, what the Men and Women of that era achieved are simply overwhelming. What would have they been used for revision history? Do they ever faced a scenario to merge source code? How they could have been done code review and testing for such a crucial module?
Though I am not competent enough to understand the content of the file, I request all of you to go through the source file. While I am going through the source code I observed/learned few things about the programming and process.
First and foremost, the thing you will notice is the fact that how well the commenting has been done. You need not be a developer to understand the content of each and every file. The comments are so beautifully written. It follows The Three Pillars of Source Code Commenting,
What: Comments in AGC source code files are clearly mentioned what the file Is about in pretty good details. A comment should clearly mention what the code is supposed to do. At a start of each file, it is clearly mentioned what it Is supposed to do in great detail.
Why: As in the case of what, the commenting clearly tells us why the code is written in the first place and what is the final goal.
How: Another thing that clearly understood from the commenting is that how the goal is achieved.
How come people in 60s achieved communication so clearly without any tools? Are we all pampered with tools for each and everything thing, still find out a way to pinpoint a tool for our incompetence?
The other thing that you notice while going through the code , how much they would have been enjoying their work.Look at the way the description is written. You never realize that the code is meant for such a critical and complex task. They all must have realized that they are in task to achieve impossible with very limited resources. Self-confidence and team work must have made the day. From Quoting Shakespeare to mentioning their colleague and even naming of the file, you can feel the motivational level and how much they must have been enjoying the work they are doing.
If you are more curious , yo can find the AGC source code from github from here Appollo 11 AGC Source code
I am competent enough to understand the content of the file, for there is a document which describes the instructions of the AGC, and I am used to program in the assembly language, I started programming in this language at the start of y career. And what I found in it was very interesting...and it has nothing to do with the comments which go with!