Here's a sample from C#; I see the same thing in Java & C++:
if (devID != null)
{
String hashInput = null;}
byte[] hashOutput = null;
byte[] hashBytes = null;
hashInput = String.Format("{0}{1}", devID, Acme.Utility.ByteToHex(devID));
hashBytes = System.Text.Encoding.UTF8.GetBytes(hashInput);
hashOutput = Hasher.GenerateHash(hashBytes);
var = System.Convert.ToBase64String(hashOutput);
This is not on par with clubbing baby seals to death, but why have a separate line of code to declare and initialize a variable, only to unconditionally set it and not check the result a bit later?
I started coding C in 1984, I understand that many programmers are used to seeing all the variables declared at the top of a method or block and feel uncomfortable doing anything else, but I think they ought to get over it. Silly code bloat is, well, silly.
What I'd much prefer is something like:
String hashInput = String.Format("{0}{1}", devID, Acme.Utility.ByteToHex(otherID));