I see I've started a big debate. Jon, let me make these points first.
To me, I don't think this will or should ever be changed to 1 based
due to the huge history of zero based logic built into computers. I'm
merely pointing out that I think that was a mistake and if it were up
to me I would really consider the change in a new language such as c#
(too late now). Excuse me if I sound a little contradicting with the
whole .NET 2.0 thing about this one, I was just spilling my thoughts
late one night
I think this really stems from they way memory works. Bytes start at a
zero register and increment from there which makes sence I suppose.
Early in the game there was mainly assembly languages (which was very
tied to hardware) which evolved more and more to higher level
languages. I'm merely suggesting that the better way for high level
languages is 1 based.
Let me also re-iderate that most arguments I've heard toward zero
based arrays are from people with a strong c++ (or other zero based
language) background. You (as many) need to make a distinction with
what you want and are used to and with what is the true better way.
Let me explain; Would you agree that programming in general over the
last twenty years is becoming more and more high level and abstract? I
consider this (as most do i think) for the most part a good thing
(there are always exceptions: i.e. drivers, etc...). If you agree with
this statement, then high level programming should match the real
world, like say an english sentence:
I would like to get the third apple:
equates to
AppleObject myApple = myApples[3];
In zero based, it would be:
I would like to get the third apple:
equates to
AppleObject myApple = myApples[2];
Another example:
Do you have the last apple?
equates to
if (myApple.Value == myApples[myApples.Count].Value)
In zero based, this would be:
Do you have the last apple?
equates to
if (myApple.Value == myApples[myApples.Count-1].Value)
This is all really not that big of a deal, but for programming to
really take shape over the next 50 years and open up some crazy
possibilities we have to make our high level languages pimp and
streamlined!
-dave