Well I don’t think
(2.5)y is an improvement over
2.5*y as it’s both longer and less explicit. So if the parens were disallowed in that case I’d be cool with it.
On the whole juxtaposition syntax is a little icky because it does introduce some syntax surprises. But I’d also forgotten about complex numeric “literals” and unitful quantities. These are cases where juxtaposition really is great.
I’m not arguing against this form (as ugly as it is). People should always be able use parentheses to group subexpressions, and this is just a degenerate example of that.
But in contrast, a keyword argument is about how the function is called, not just what is passed to the function: In some sense, the
= keyword syntax is “part of” the function call brackets and should not be separated from them in some arbitrary deeply nested parens.
I agree with this assessment. Case insensitivity is unfortunate and could possibly be addressed if we had a way to migrate syntax variants.
Yes we should have good linting and these things should be easy to detect because they’re just syntax. JuliaSyntax.jl is very much being developed with tooling in mind.