Uma das coisas que o programador precisa é da lógica. Se causa dificuldade de adaptação, alguma coisa está errada. A linguagem não facilita a resolução de problemas da vida real. O problema é a preguiça de quem desenvolveu o interpretador/compilador.
Iniciando em 1, resolveria uma grande parte dos problemas (meses, dias, itens de uma lista, etc.).
Mas algumas vezes iniciar em 0 pode ser interessante. Existem outros mas vamos citar ângulos. Podemos ter de 0° até 360°.
Um terceiro caso em que os anteriores não resolvem. Preciso calcular as propriedades de um elemento com temperaturas variando de -7°C até 50°C.
- Fazer continha para definir o número de elementos da array (lembrando que zero é uma temperatura válida).
- Para acessar os elementos terão que ser feitas continhas pois o item zero ou 1 é -7.
Existem linguagens onde a definição dos índices é arbitrária, o que resolve o terceiro caso.
arr : array[-7..50,int]
for ix in -7..50:
arr[ix] = calculo_complexo(ix)
print "Característica para -2°C = ", arr[-2]