Skip to main content

You are not logged in. Your edit will be placed in a queue until it is peer reviewed.

We welcome edits that make the post easier to understand and more valuable for readers. Because community members review edits, please try to make the post substantially better than how you found it, for example, by fixing grammar or adding additional resources and hyperlinks.

Required fields*

3
  • $\begingroup$ Pascal and Visual Basic (and many other Basics) also preferred natural indices. Using zero-based indexing really has to do with conflating indexing and pointer arithmetic. If I want an array from -10 to 10, why should I index it from 0, right? Let the compiler/library deal with the details. C didn't have indexing at all, only pointer arithmetic, so there was little choice. For some weird reason, even today people still count this as C's advantage, rather than misfeature. Oh well. $\endgroup$ Commented Sep 13, 2018 at 10:49
  • $\begingroup$ I considered including Basic but it was so long since I have used it that I was not sure. Also, as you hint, it is probably dialect dependent. I miss the ability to choose the minimum and maximum index. It is a shame that it has not caught on. $\endgroup$ Commented Sep 13, 2018 at 11:39
  • $\begingroup$ Plenty of languages on the "abstraction makes things easier" side of the barrier still support ranges. You just need to give up C-like languages, for the most part (though e.g. C# does have support for arbitrary indexing, it's not really "equal citizen" compared to zero-based). $\endgroup$ Commented Sep 13, 2018 at 17:05