Actually as Dijkstra clarified a long time ago, there are valid mathematical reasons that index should start at 0. Long story short, it comes in two parts:
1\. It's better to represent the indices of an array using a half open interval ie: `a <= i < b`. The reason is this allows you to compute the number of elements as a direct subtraction of the bounds `n = b - a`. It also gives you arguably a better representation of the empty set `a <= i < a` because you only need to specify one number (a) for both sides of the bound. 2\. If you agree with 1, then first element should start at index 0. The reason is you can write the bounds of the index of an array with n elements naturally, as `0 <= i < N`. Now quite frankly I don't really care all that much either way. It's pretty easy to force Julia to use 0 index if need be and it certainly isn't my main reason for disliking Julia for enterprise usage.