Abbreviated variable names are fine

Should you use full variable names, or abbreviated? The answer: doesn't matter.

Fixing Faults in C and Java Source Code: Abbreviated vs. Full-word Identifier Names by an all-Italian team of Scanniello, Risi, Tramontana, and Romano.

This is a long paper with a short message.

Abbreviated identifiers are not a major obstacle to fault identification and fixing

Its's a quantitative and qualitative study: it measures participants success and failure in debugging code with delibrate mistakes, and uses ethnographical methods to study these professional programmers. (Relevant Dilbert comic)

I do have a couple concerns.

1) The paper says that abbreviated identifiers make searching over the code a bit harder, because the developers didn't use the correct abbreviations, or any, when searching. It didn't significantly affect debugging, apparently, but I don't know why not. I wonder if abbreviated identifiers is a minor obstacle.

2) I wish I could see what they consider abbreviated v full variable names. The only example I see is using "i" v. "iterator", which isn't a great example because programmers have long internalized what "i" stands for.

Comments

(Commenting is closed. Please tweet me at @landedstar instead.)

┼╝aden.

PHP Startup: memcached.sess_lock_wait and memcached.sess_lock_max_wait are deprecated. Please update your configuration to use memcached.sess_lock_wait_min, memcached.sess_lock_wait_max and memcached.sess_lock_retries
The error has been logged in /anchor/errors.log
Uncaught Exception

Uncaught Exception

PHP Startup: memcached.sess_lock_wait and memcached.sess_lock_max_wait are deprecated. Please update your configuration to use memcached.sess_lock_wait_min, memcached.sess_lock_wait_max and memcached.sess_lock_retries

Origin

on line 0

Trace

#0 [internal function]: System\Error::shutdown()
#1 {main}