Currently I am using the following rules:
Capital case for acronyms: XMLHTTPRequest
, xmlHTTPRequest
, requestIPAddress
.
Camel case for abbreviations: ID[entifier]
, Exe[cutable]
, App[lication]
.
ID
is an exception, sorry but true.
When I see a capital letter I assume an acronym, i.e. a separate word for each letter. Abbreviations do not have separate words for each letter, so I use camel case.
XMLHTTPRequest
is ambigous, but it is a rare case and it's not so much ambiguous, so it's ok, rules and logic are more important than beauty.