i
e j
têm sido usados como subscritos em matemática por um bom tempo (por exemplo, mesmo em artigos que antecedem idiomas de nível mais alto, você frequentemente vê coisas como "X i] , j ", especialmente em coisas como um somatório).
Quando eles projetaram Fortran, eles (aparentemente) decidiram permitir o mesmo, então todas as variáveis começando com "I" até "N" padrão para inteiro, e todas as outras para real (ponto flutuante). Para aqueles que perderam, esta é a fonte da velha piada "Deus é real (a menos que seja declarado inteiro)".
A maioria das pessoas parece ter visto poucos motivos para mudar isso. É amplamente conhecido e compreendido e bastante sucinto. De vez em quando você vê algo escrito por algum psicótico que acha que há uma vantagem real para 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;
Felizmente, isso é muito raro, e a maioria dos guias de estilos agora apontam que, enquanto nomes de variáveis descritivas podem ser úteis, você não sempre precisa deles, especialmente para algo como isso, onde o escopo da variável é apenas uma ou duas linhas de código.