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!
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 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).
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 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!