Why numbering should start at zero (1982)
Depends on whether you're measuring or counting.<p>The article mentions Mesa's interval syntax, which gave programmers all the possible options:<p>[1..100]  (0 .. 101)  [1 .. 101)  [1 .. 101)<p>were all the same interval, 1 to 100 inclusive. Bad idea. Great way to get off-by-one errors.<p>Another bad idea from that era - Wirth's insistence that you shouldn't be allowed compile-time arithmetic in Pascal. Like.<p><pre><code>    const
        tabsize = 100;

    var 
        tab: array [0..tabsize-1] of integer; { NOT ALLOWED }
</code></pre>
No, you had to have a separate named constant for "tabsize-1", and it couldn't be initialized as "tabsize-1", either.