On Wed, 9 Sep 2015 12:31 am, Ian Kelly wrote: > On Tue, Sep 8, 2015 at 5:55 AM, Vladimir Ignatov <kmis...@gmail.com> > wrote: >>>> I had some experience programming in Lua and I'd say - that language >>>> is bad example to follow. >>>> Indexes start with 1 (I am not kidding) >>> >>> What is so bad about that? >> >> It's different from the rest 99.9% of languages for no particular reason. > > It's not "different from the rest 99.9% of languages". There are many > languages that use 1-based indexing, e.g. Matlab, Pascal, Fortran.
Correct. Nearly all natural languages start counting at 1, not 0, as do quite a few programming languages, such as PL/I, Algol60 and others. You'll note that languages that are designed for mathematics (Matlab, Mathematica, Julia) tend to use 1-based indexes. This is not an accident. Guido discusses why he choose 0-based indexing like in C, instead of 1-based indexing like in ABC: http://python-history.blogspot.com.au/2013/10/why-python-uses-0-based-indexing.html He links to this fantastic discussion of why C ended up with 0-based indexing: http://exple.tive.org/blarg/2013/10/22/citation-needed/ It's a wonderful read. See also: http://c2.com/cgi/wiki?WhyNumberingShouldStartAtOne http://c2.com/cgi/wiki?WhyNumberingShouldStartAtZero Anyone who thinks that there is one right answer here simply isn't paying attention. > None of those are even the worst offender here, IMO. That honor goes > to Visual Basic 6, where the default lower bound is 0, but the > programmer has the option of declaring an array to use any lower bound > they want, or even globally change the default. I'll just point out that some algorithms are best written with 0-based arrays, and some are best with 1-based arrays. I shouldn't have to change languages to change from one to the other! -- Steven -- https://mail.python.org/mailman/listinfo/python-list