Bug, loop and patch - these words have been part of programmer lingo for decades. On my recent trip to the US east coast I stumbled across their origin:

The Harvard Mark I aka the IBM Automatic Sequence Controlled Calculator!

The Harvard Mark I

This amazing machine was one of the first programmable computers. I’ll tell you more about this monolith at the end of the post.


The Harvard Mark I Loop

The original (mechanical) loop. The program is a long paper tape with holes punched in and runs in this loop. Conditional branching is not supported (no gotos, jumps); you just have one long while (true).


The Harvard Mark I Loop

See the actual patch. A correction is made by literally patching a piece of the tape and punching new holes in. Fix your code with duct tape!


The Harvard Mark I Loop

The classic! This “bug” was found on a Mark II mechanical component, so not really a program error. It must have been working on my machine.


Tidbits I found interesting:

  • It started computing 70 years ago!
  • It was Steampunk! Ok, I mean it was electro-mechanical. The inventor Howard Aiken basically built a Babbage engine on steroids.
  • John Von Neumann used it to help design the atomic bomb. Seems most of our high-tech was born in that war.
  • The number system was decimal, not binary. So you could use all your fingers to count.
  • It ran solidly for 15 years. Seems Moore’s Law does’nt apply to mechanical computers.
  • The inventor did not give attribution IBM, who funded and built large parts of it. I guess after this IT companies started employing lots of lawyers.

The machine is on display at the Harvard University Science Center (where I took these photos). Hope you enjoyed this as much as I did.

You are welcome to share this post on Twitter or follow me!

Blog Logo

Jacques de Vos


Back to Overview