Recientemente le comentaba a un compañero que en R los índices de los arrays (sus equivalentes, vectores, listas, etc) empezaban en uno. Su respuesta fue elocuente:
1?? herejia!
Aunque no sea un lenguaje de programación, también en Postgres los arrays empiezan la cuenta en 1. Junto con AWK, y Matlab/Octave son de los pocos que no empiezan por cero.
Y aunque se suelen escuchar distintos motivos sobre el porqué los índices de los arrays empiezan en cero (algo que resulta poco intuitivo en principio), parece que realmente poca gente conoce los motivos reales.
En su interesante artículo Citation Needed, Mike Hoye hace una investigación muy completa para encontrar la solución.