>I assume, like you, that they could have, but since internally, it starts at 0, it probably just seemed natural to do it the same way externally; at least, at first. Later somebody probably thought it seemed odd to start at 0, so changed it, and since then, everybody creating a portion of a language does it whichever way feels most natural to hiim/herself. You have to wonder if anybody is enforcing any standards over an entire project.
I rely on the intellisense to know about it. So, at least, I do not have to look at several places to now if I have to consider coding for zero based or one based.