You fool! You think your puny brackets can defeat *me* ...?
Print and mail, about 15 years ago, we printed water bills (sorry) amongst other things. My job was perl-munging data from customers into a format acceptable to the various print composition tools we had and, once or twice, to help out with any macros in the composition templates if they were tricky. We got the water bill gig from TakingYourShitAwayAndPuttingItInTheSea Ltd and management decided this was the project to do with the new composition tool which had - trigger alert - "smart" templates, supporting a language similar to VB.
A good few of you will have had the experience where "I can't write application XYZ code" is meaningless (cuz you iz a programmarer, yeah?) and the negative verb in "I won't write application XYZ code" is negotiated down through "refuse to", "shoudn't", "would prefer not to" and "will just ONCE, to get you out of a hole, alright?" to ... nothing. This happened to me and so I found myself looking at a little function to adjust the paragraph flow depending on how long the form letter's furniture (address, title, pictures etc) was.
No big deal, couple of ifs and some maths, thought I.
However, run it through the composition and the flow would be wrong, in preview and in print. Check it and it looks right. Do it by hand, it's right. Mock it up in perl, those expressions work.
Remember I said the language was "similar" to VB? In appearance yes, but definitely not in tooling: no console output, no debugger. I hard-coded the numbers in for a particular case. Still wrong.
Stumped, I raise a ticket with the supplier and they come back startlingly quick: "there is no operator precedence, expressions are evaluated left to right."
Wow. I stick some brackets in - (it (looks) (stupid)) ((,) (but)) that'll force operator precedence, won't it?
Nope, didn't work on the test, so I broke it down to separate, consecutive expressions and my little function is now fifty plus lines of horror, but *working* horror.
I followed up on the ticket about the brackets: "we strip them out because it makes parsing the expressions easier".
Wow again. Last bit of application XYZ code I ever wrote.