Why do most programming languages have 0 as the first index of arrays? What are the advantages of that? Why do some languages like Lua start their arrays at 1?
Low-level programming languages are written with the machine's hardware in mind, and indexing from 0 is no exception. The C programming language uses 0-based array indexing, because the array index is measuring the difference in memory locations, so 0 would refer to the first index. Because C was so influential on the rest of the programming world, many other languages also started using 0-based array indexing. However, some higher-level languages such as Lua or MATLAB ignore this convention, most likely because it can be confusing for those new to programming.
Do you think it's likely that more new languages will start list indices at 1?