Dynamic lists that start at 1 are great

This is less about actually programming anything and more about the convention in most programming languages that lists must always no matter what have the first item start at 0.

I think this is silly.

Take for example, C. C is a statically typed language that is extremely low level compared to something like JavaScript or Python. In the case of C, an "array" of items is really just a group of values of the same type, stored in memory one after the other. The way you "index" the array isn't by putting the item number you want to get, but rather by telling the program what offset to give the pointer to that array. The program then roughly translates this to getting the value at (pointer + (index * sizeofitem)), and since the pointer to an array references the first item, the index you provide is X items after the first one. This makes sense, since it would take extra math to make it start at 1 anyway, and it makes more sense to not abstract that part of the program away when you are dealing with memory at that low of a level.

Now, look at JavaScript for example. JavaScript has similar syntax as C, but doesn't have a type system and is a lot more high level compared to C. Elements in a JavaScript array are not just pieces of data stored one after another, given that each item has to have a type associated with it, and can be a different size, and therefore calculating the position in memory to retrieve the data is a lot more complicated than just offsetting the pointer, but JavaScript abstracts all that away so you don't have to think about the exact bytes in memory for each array. In this case, it seems more logical to use the natural starting point of 1, with 1 being the first element, 2 being the second, and so on, but to stay similar to the languages it imitates it still starts arrays at 0.

TL;DR I think it should depend on the context and language implementation. There's not a definitive way to go for everything all of the time, but I think some languages would've benefited from starting lists at 1. But that's just my opinion.