2 ms·
Reading "if (((2*x) + 3) == z)" is annoying as well to me...
by tromp 5y ago
Reading "if (((2*x) + 3) == z)" is annoying as well to me...
- ModernMech 5y agoBut it's clear and precise, which is the definition of good code to me, and good developer experience. Clear, consistent rules applied uniformly, everywhere. That's what I call good design. Bad developer experience is having to remember 17 levels of precedence, as in C++[1]. It leads to ridiculous things like (*foo).bar, which requires new syntax to make readable, and that's just one more thing to remember and teach. Do you know how much that confuses students new to C and C++? [1] https://en.cppreference.com/w/cpp/language/operator_precedence https://en.cppreference.com/w/cpp/language/operator_preceden... But if it's really so onerous to read, you can always put a more ambiguous version in the comments!
- eperdew 5y agoTo me, adding parentheses when using common operators signals that I should read it carefully, because normal precedence is probably broken. When that is not the case, I spend a bit more time parsing the expression for no gain as a reader.