"Dave Thomas" <Dave / PragmaticProgrammer.com> wrote in message news:m2itm175xd.fsf / zip.local.thomases.com... > The Pragmatic Pragma: use parantheses around method arguments! Since reading the book Writing Solid Code a couple of years ago I've always used parentheses around expressions and arguments in languages where it is optional to avoid ambiguities and stupid mistakes with precendences. I've made it a part of my programming style to use parentheses in all expressions so I never need to hesitate how the expression will be interpreted/compiled except for +-*/ operators. For example: if( (true == fExpression) && (true == fInHeader) ) When learning and developing my Ruby style I've been a bit lazy and skipped the parentheses now and then. Some sample code: if strOutput =~ /^\s*'/ and 0 == indentLevel ... end instead of if (strOutput =~ /^\s*'/) and (0 == indentLevel) or even if( (strOutput =~ /^\s*'/) and (0 == indentLevel) ) I've used very simple expressions as samples but the more complex they get the more important parentheses get. Like when mixing several "and" and "or". To use parentheses when the complexity level reaches a certain level or to be consistent and use them all the time. To use them all the time has in fact sped up my C/C++ coding because I never have to stop and think about precedence rules like I used to do. Maybe it is a bit different with an interpreting language that has to throw away all those unneccessary parentheses? Maybe this won't be an issue if there will be such a thing like a RubyVM? Any thoughts, suggestions, experience (bad and/or good) on this issue would be appreciated. /rob