Houston, we have a problem

Apollo 11’s Eagle lunar lander guidance computer source code was recently open sourced on Github. As a programmer, especially one surrounded by NASA, it’s fascinating to see and read code written and tested 50 years ago right here in my neighborhood.

Reading through it I’m left with many questions. What were their work routines like when developing this? What kinds of challenges did they run into? How did they overcome them?

I wonder what type of people the programmers were. Did they enjoy their work? What did they look like? I imagine the majority had short hair, slide rules in their pockets and wore ties to work. Quite different from today’s hoodies, headphones and baseball caps.

Reading through the code I found some interesting comments. It made me realize that as different as we may appear on the surface, the challenges that we face as programmers are now the same challenges from 50 years ago.

They ran into the same pitfalls a modern programmer finds themselves running into: code that should be temporary becomes permanent.

> TC BANKCALL # TEMPORARY, I HOPE HOPE HOPE
CADR STOPRATE # TEMPORARY, I HOPE HOPE HOPE
Lunar Landing Guidance Equations.s

50 years ago the developer who wrote this code had a time crunch. He likely had to hit a tight deadline. While we’re not in the space race today, the average developer’s life is still based on deadlines and the result is the same: temporary code is anything but temporary.

The code you’re writing today will probably not change. Those shortcuts you write to save 20 minutes today will be there tomorrow. And if the Eagle’s guidance computer is any model, it will be there 50 years from now as well.