Contemporary programmers are lucky: we live in a world where historical and influential program source code is available for us to review. However, most programmers only learn and study the programs they have worked on themselves. We rarely take the time to study historical works, and programming courses don’t typically spend any time on the subject.
We believe that software developers should review influential source code. This is similar to architects studying influential building designs (and critiques of those designs). Rather than repeating the same mistakes over-and-over, we should study the great works that preceded us and learn from and build upon their lessons.
Ideally, we would study great source code along with a commentary or critique which provides us information about the project’s context, successes, and failures. Such commentaries are rare, but here are a few excellent starting points:
- Doom 3, a game that is often lauded as having an exceptional software design
- The Apollo 11 Guidance Computer source code is hosted on GitHub
- The Virtual AGC Project has source code for various Apollo missions, documentation, and simulators
- Virtual AGC repository
- The Apollo Guidance Computer: A Kinder, Gentler Introduction
- AGC Document Library
- Apollo Guidance Computer: Architecture and Operations
- Your Smart Toaster Can’t Hold a Candle to the Apollo Computer
- The Architecture of Open Source Applications can be used as a commentary to help guide your review of many foundational open source projects
- Microsoft BASIC for 6502 Original Source Code
- DOOM (the original)
- Wolfenstein 3D
You can also find a program you’ve used in the past and review the source code. It’s important to start with a program you are familiar with, so you can anchor the functional behavior to the source code. Here are resources you can use to find and browse historical source code:
- The Historical Source GitHub organization currently has 143 programs archived
- Many of them are once-popular games which you may have played
- The Game Engine Black Book Website features detailed looks at the DOOM and Wolfenstein 3D game engines, with associated source code
- The NASA Software Catalog has over 1,000 NASA software projects which are now available to the public
- The Computer History Museum collection includes source code for historical programs. Here’s a sampling from their historical source code series:
- Many people played with the famous Furby toy, whose source is available:
- The source code for the original SimCity (aka Micropolis) is available for download
Major Revisions
- 20190729:
- Added additional Apollo 11 guidance computer links
- 20190627:
- Added links to Wolfenstein and DOOM source code + reviews