Comment Re:Yawn (Score 1) 54
Why don't they 1-index then?
Because they forget to, and because all the algorithms and data structures that they learned elsewhere, such as heap priority queues, have to have their logic changed between 0- and 1-indexing and between arrays that do and do not allow nil to be an element. For example, any SQL database will produce NULL values in the result of a LEFT JOIN statement, but in the iterator protocol used by Lua's for statement, nil is the terminator.
Are they that stupid?
Some people would interpret this question as carrying a hidden assumption that even if a language's design is flawed, a programmer can be just as productive in it as in any other language. If you are not trying to imply that, then yes, programmers are fallible, and a language design can help a programmer produce a correct program more quickly by protecting the programmer from his own mistakes. See, for example, widely cited accusations leveled at PHP. But if you are trying to imply that, then why not just have everybody program in assembly language?