&gt; Why should we use from-0 indexing for all eternity? Just because it&#x27;s always been that way? This is a real question if you have the answer.<p>Well, we obviously <i>can</i> use 1-based indexing.  Ada&#x2F;VHDL allows you to define the ranges of your indicies even beyond 0 or 1 based (<i>very</i> useful in fixed point mathematics where you sometimes want to index your bits by a negative power of 2).<p>The big disadvantage is that you lose the algebraic properties of mapping to the ring of integers modulo N when your indicies are 1-based.<p>This leads to a bunch of off-by-one bugs in various places.  One of the most pernicious is that while you can get to the next index with &quot;next = prev % N + 1&quot; you actually have to do &quot;prev = (next - 1) % N&quot;.  Note that the previous <i>REQUIRES</i> the parentheses due to precedence of operations.<p>0-based may be convention, but it isn&#x27;t ill thought out.  FORTRAN(1-based) and C(0-based) coexisted a <i>LONG</i> time.  Pascal was(is?) 1-based.  Most people had experience with both.<p>People who designed programming languages <i>CHOSE</i> the 0 convention.  Overwhelmingly.