<story><title>Wuffs the Language</title><url>https://github.com/google/wuffs/blob/main/doc/wuffs-the-language.md</url></story><parent_chain><item><author>oconnor663</author><text>&amp;gt; There is no operator precedence. A bare a * b + c is an invalid expression. You must explicitly write either (a * b) + c or a * (b + c).&lt;p&gt;Honestly I&amp;#x27;ve often wished for this in mainstream languages. It seems like operator precedence should go the way of bracketless if and implicit int casts. (Though I wonder if they wind up making exceptions here for chains of method calls? I guess technically those rely on operator precedence sort of?)&lt;p&gt;Edit: Yeah I see the example code has &amp;quot;args.src.read_u8?()&amp;quot;. So it looks like they figured out how to keep the good stuff.</text></item></parent_chain><comment><author>mekkkkkk</author><text>Yes please! I&amp;#x27;m always using parenthesis for every compound expression, and I&amp;#x27;ve heard so many times from coworkers or code reviewers smuggly going &amp;quot;you know you can skip that, right?&amp;quot;. At the same time I&amp;#x27;ve heard the same people having discussions and scratching their heads about precedence in some attempt to code golf their way through a feature. Not to mention bugs caused by incorrect assumptions. Or pausing to figure out what some previously written expression actually does. Meanwhile, I&amp;#x27;ll gladly write `X + (Y &amp;#x2F; Z)`. You can thank me later.</text></comment>
<story><title>Wuffs the Language</title><url>https://github.com/google/wuffs/blob/main/doc/wuffs-the-language.md</url></story><parent_chain><item><author>oconnor663</author><text>&amp;gt; There is no operator precedence. A bare a * b + c is an invalid expression. You must explicitly write either (a * b) + c or a * (b + c).&lt;p&gt;Honestly I&amp;#x27;ve often wished for this in mainstream languages. It seems like operator precedence should go the way of bracketless if and implicit int casts. (Though I wonder if they wind up making exceptions here for chains of method calls? I guess technically those rely on operator precedence sort of?)&lt;p&gt;Edit: Yeah I see the example code has &amp;quot;args.src.read_u8?()&amp;quot;. So it looks like they figured out how to keep the good stuff.</text></item></parent_chain><comment><author>wuschel</author><text>LISP-like languages have enforced operator precedence due to polish notation e.g. (+ (* a b) (+ c d))</text></comment>