I ran across http://wordaligned.org/articles/brackets-off and, well, I disagree.
"Thomas Guest" writes:
And secondly, if a coding standard were to rule on how to parenthesise, it would be difficult to find a middle ground. This leaves as candidate rules the two extremes:
1. parenthesise everything
2. never parenthesise
The first quickly leads to unreadable code. The second seems overly proscriptive.
Thomas misses the obvious middle-ground: parenthesize everything where order matters.
x = ((((a * b) * c) + e) + f);
may be overkill, but even the most passionate parenthesize everything advocates don't go that far; they write
x = ( a * b * c ) + e + f;
where every operation at the same level of precedence is left alone. This provides maximal clarity and promotes readability, as the reader doesn't have to think about the order of precedence for that language.
He then goes on to discuss order of precedence as if it's a universal rule, rather than a convention of infix notation in programming languages. (I've had this discussion with people, some of whom could not be convinced that precedence was anything other than a convention, arguing that it derives from fundamental principles of mathematics that I was too stupid to comprehend and thus it wasn't worth explaining.)
Perhaps Thomas should try programming in more than just one language. I suggest Smalltalk.