It depends on what you're using the indexing for.<p>Having played around with Lua (In a mod for Minecraft, of all things), I'll say that 1-based indexing is better for some things, while zero-based indexing is good for other things.<p>One of the nice things about 1-based indexing is that for basic "display a list to the user with indexes" purposes, you don't need to add one all over the place. But at the same time with 0-based indexing you don't need to check the lower bound in a lot of cases.
Short answer no - programming would be just a little bit more difficult. Calculating an index can often be simplified if zero is not just a valid value but the first element in an array or character in a string or what have you.<p>I base this on the active experience of having worked (over the years) with 1 based index languages and (even) languages (VB Classic) where you could set the lower as well as upper bounds of an array. Zero based arrays (and such) are generally just that bit easier to work with.
The canonical argument for starting indexes at 0: <a href="http://www.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/EWD831.html" rel="nofollow">http://www.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/EW...</a>
Then in C, *(p+10) would reference array[11], which would probably cause its own kind of error and misunderstanding. The only winning move is not to play? I don't think it would make any difference.