The original FORTRAN and BASIC arrays started indexing at one because everybody other than
computer scientists start counting at 1.
These languages were for scientists and the beginner, so you wanted to make things
compatible with their normal concepts.
PASCAL on the other hand required you to give the minimum and maximum index for the
array.
It was an interesting concept when I got into computers in the early seventies that things
would be numbered from zero. Tape drive 0, TTY0, etc…
Of course, C’s half-assaed implementation of arrays kind of depends on zero-indexing to
work.
From: TUHS [mailto:tuhs-bounces@minnie.tuhs.org] On Behalf Of shawn wilson
Sent: Wednesday, June 7, 2017 8:57 AM
To: The Eunuchs Hysterical Society
Subject: [TUHS] Array index history
I learned the other day that array indexes in some languages start at 1 instead of 0. This
seems to be an old trend that changed around the 70s? Who started this? Why was the change
made?
It seems to have come about around the same time as C, but interestingly enough Lua is
kinda in between (you can start an array at 0 or 1). Smalltalk can probably have a 0 base
index just by it's nature, but I wonder whether that would work in a 40 year old
interpreter.