i
y j
generalmente se han utilizado como subíndices en bastante matemática durante bastante tiempo (por ejemplo, incluso en documentos que son anteriores a los idiomas de nivel superior, con frecuencia se ven cosas como "X i, j ", especialmente en cosas como una sumatoria).
Cuando diseñaron Fortran, (aparentemente) decidieron permitir lo mismo, por lo que todas las variables que comienzan con "I" hasta "N" son por defecto enteras y todas las demás a real (punto flotante). Para aquellos que se lo perdieron, esta es la fuente de la vieja broma "Dios es real (a menos que se declare entero)".
La mayoría de las personas parecen haber visto pocas razones para cambiar eso. Es ampliamente conocido y entendido, y bastante sucinto. De vez en cuando ves algo escrito por un psicótico que cree que hay una ventaja real en algo como:
for (int outer_index_variable=0; outer_index_variable < 10; outer_index_variable++)
for (int inner_index_variable=0; inner_index_variable < 10; inner_index_variable++)
x[outer_index_variable][inner_index_variable] = 0;
Afortunadamente, esto es bastante raro, y la mayoría de las guías de estilo ahora señalan que si bien los nombres largos y descriptivos de variables pueden ser útiles, no siempre los necesita, especialmente para algo como esto, donde el alcance de la variable es solo una línea o dos de código .