Included near the bottom of the article is a link to a Spanish outlet's interview with Margaret Hamilton (the lead flight software engineer) that I had only recently discovered:<p><a href="https://medium.com/@verne/margaret-hamilton-the-engineer-who-took-the-apollo-to-the-moon-7d550c73d3fa" rel="nofollow">https://medium.com/@verne/margaret-hamilton-the-engineer-who...</a><p>She gives some general insight to how the code works, but the biggest highlight for me was how she apparently coined the term "software engineering":<p>> <i>Software during the early days of this project was treated like a stepchild and not taken as seriously as other engineering disciplines, such as hardware engineering; and it was regarded as an art and as magic, not a science. I had always believed that both art and science were involved in its creation, but at that time most thought otherwise. Knowing this, I fought to bring the software legitimacy so that it (and those building it) would be given its due respect and thus I began to use the term “software engineering” to distinguish it from hardware and other kinds of engineering; yet, treat each type of engineering as part of the overall systems engineering process. When I first started using this phrase, it was considered to be quite amusing. It was an ongoing joke for a long time. They liked to kid me about my radical ideas. Software eventually and necessarily gained the same respect as any other discipline.</i><p>Apparently, she's kept off of the social network grid, but would love if someone could convince her to do an AMA.
<i>To address the limited instruction set, the AGC team wrote a software virtual machine (or p-code machine) for the AGC to interpret an entirely new instruction set called the “interpretive language”.</i><p>Interestingly, Steve Wozniak would come up with a similar solution for the Apple II about a decade later:<p><a href="https://en.m.wikipedia.org/wiki/SWEET16" rel="nofollow">https://en.m.wikipedia.org/wiki/SWEET16</a><p><i>SWEET16 is an interpreted byte-code language invented by Steve Wozniak and implemented as part of the Integer BASIC ROM in the Apple II series of computers. It was created because Wozniak needed to manipulate 16-bit pointer data in his implementation of BASIC, and the Apple II was an 8-bit computer.</i>
Interesting fact: the listings contain comments indicating page numbers in the form of "# Page [number]". To find the maximum page number, I ran the following one-liner:<p><pre><code> $ awk '/# Page / { print $3 }' Apollo-11/*.s | sort -gr | head -1
1516
</code></pre>
It is often speculated that in the famous photo, Margaret Hamilton is standing next to the pile of the complete source code. However, 1516 pages are far from such a high pile. I wonder, aren't these books just containing different revisions of the code, or maybe not all of the code has been published?
It's probably worth linking to the prior discussion re: the Github repo itself.<p><a href="https://news.ycombinator.com/item?id=12048945" rel="nofollow">https://news.ycombinator.com/item?id=12048945</a>
Apparently Science Channel did an episode on "MIT's work on the Apollo Guidance Computer" (episode 3):<p><a href="https://en.wikipedia.org/wiki/Moon_Machines#Part_3:_the_navigation_computer" rel="nofollow">https://en.wikipedia.org/wiki/Moon_Machines#Part_3:_the_navi...</a><p>They are available on public torrent sites.
on a related note, this has passed by HN in the past and it is still fascinating to watch: <a href="http://www.firstmenonthemoon.com/" rel="nofollow">http://www.firstmenonthemoon.com/</a>
The Margaret Hamilton picture actually just shows her next to computer manuals, not code she wrote. This was cleared up in another thread a long time ago.