Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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.


Oh that’s clever. Thanks for that tip.


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.


Yes, it's bonkers to have to write so much repetitive code when you could have a better abstraction such as numberArray.forEach(printline)


Sounds like you're a Windows and/or Java programmer.


Oh no that will not do, it has to be descriptive like err, arrayOfUsersIteratorCurrentIndex.


arrayOfUsersIteratorCurrentIndex implies you are either joking or are a Windows programer.


Huh. The standard where I work is

foo

bar

baz

In that order


That would be about the time I stand up and leave the interview


When you realize the interview never ended. Or that there was no interview and they were just having you work for free for the first hour.


w h y




Consider applying for YC's Winter 2027 batch! Applications are open till November 2.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: