I don't care that he named his variables after women. What I do care about is that he named very temporary variables longer than a single character. 'n' and 'i' suffice and anything else is just pretentious.
I used to use i, j, and k; but at my last job single letter variables were frowned upon so I started using ii, jj, and kk and now much prefer those for simple loops. Searching for "ii" yields the loop much more reliably and quickly than "i" which is often a partial match to other words.
I developed the same habit after working on numerical code in Matlab. `i` can sometimes be sqrt(-1), but `ii` is always a variable. For greatest disambiguation, it's best practice to write `1i` for the complex number and leave `i` unused.
This is generally regarded as bad programming practice. The standard recommendation is to always use descriptive variable names. Especially since your IDE will help you type them (you are using an IDE, and not trying to bro it out in unadorned vim or Emacs, aren't you?).
Sure, but do you really write loops as (int counter = 0; counter < maxloop; counter++ { printline numberArray[counter] } ? Because that's kind of bonkers.
I think "idx" is superior to the other suggested options for this case.
It's still short but it describes what the loop variable is for, i.e indexing into the array.
Neither counter nor idx strike me as an improvement over i.
If you want to be descriptive, name the purpose of the loop variable. If it's an array of foos or an array named foo, then use something like fooIx. Then when you loop over an array of bars, use something like barIx. If you're counting retries, call it retryIx or retryCt (or something that describes what you're retrying, like loginAttemptIx).
Depending on the context, i may be fine. However, a single-character name like that is bound to be reused, which is a bad smell.