Naming Variables
Russ Cox writes:
A name’s length should not exceed its information content. For a local variable, the name
i
conveys as much information asindex
oridx
and is quicker to read. Similarly,i
andj
are a better pair of names for index variables thani1
andi2
(or, worse,index1
andindex2
), because they are easier to tell apart when skimming the program. Global names must convey relatively more information, because they appear in a larger variety of contexts. Even so, a short, precise name can say more than a long-winded one: compareacquire
andtake_ownership
. Make every name tell.The information content metric gives a quantitative argument against long-winded names: they’re simply inefficient. I internalized this metric years ago but only realized this phrasing of it recently, perhaps because I have been looking at too much Java code.
Yes, x
sucks, but maybe I should stop writing tweet-sized variable names?