the technical reason we start counting arrays at zero is that in the mid-1960′s, you could shave a few cycles off of a program’s compilation time on an IBM 7094. The social reason is that we had to save every cycle we could, because if the job didn’t finish fast it might not finish at all and you never know when you’re getting bumped off the hardware because the President of IBM just called and fuck your thesis, it’s yacht-racing time.

Mike Hoye: Citation Needed, a fascinating look into why most modern languages have zero-indexed arrays that you should wander off and read (via iamdanw)