<story><title>Why numbering should start at zero (1982)</title><url>https://www.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/EWD831.html</url></story><parent_chain><item><author>randcraw</author><text>Dijkstra&amp;#x27;s argument is obsolete.  Iterators have largely replaced the explicit specification of integer ranges in loop control.&lt;p&gt;Also, the recent rise in programming with multidimensional data invites the question of why matrix integer indices &lt;i&gt;should&lt;/i&gt; include zero, which Dijkstra&amp;#x27;s essay doesn&amp;#x27;t address.&lt;p&gt;Likewise, the increasing use of real variables in software invites asking whether an elegant syntax for specifying integer ranges applies equally well when used for real ranges, since &amp;lt;= operators make less sense when constraining floats.  Also not addressed.</text></item></parent_chain><comment><author>avian</author><text>&amp;gt; Iterators have largely replaced the explicit specification of integer ranges in loop control.&lt;p&gt;Yes, explicit indices are less common than they used to be due to iterator support in languages. However they are far from being obsolete. I&amp;#x27;ve been recently going through a lot of code dealing with numerical calculations and there you see hardly any iterator use.&lt;p&gt;Also, MATLAB code, which uses 1-based indices, is an absolute pain to deal with compared to Python&amp;#x2F;numpy, for example.</text></comment>
<story><title>Why numbering should start at zero (1982)</title><url>https://www.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/EWD831.html</url></story><parent_chain><item><author>randcraw</author><text>Dijkstra&amp;#x27;s argument is obsolete.  Iterators have largely replaced the explicit specification of integer ranges in loop control.&lt;p&gt;Also, the recent rise in programming with multidimensional data invites the question of why matrix integer indices &lt;i&gt;should&lt;/i&gt; include zero, which Dijkstra&amp;#x27;s essay doesn&amp;#x27;t address.&lt;p&gt;Likewise, the increasing use of real variables in software invites asking whether an elegant syntax for specifying integer ranges applies equally well when used for real ranges, since &amp;lt;= operators make less sense when constraining floats.  Also not addressed.</text></item></parent_chain><comment><author>EpicEng</author><text>There&amp;#x27;s a whole lot of work that goes into the high level abstractions you take for granted. The people making those abstractions care about this, even if you don&amp;#x27;t.</text></comment>