

Agree with several people here that named parameters are a good solution, they add minimal overhead at the call site and function declaration and look very natural.
Another option for languages that want function arguments to have fixed size is bitmasks. I wonder if it could be a useful language feature to infer the flag names from the function declaration. Something like
def my_function(arg1, arg2, [FLAG1, FLAG2]) {
if (FLAG1) {
do thing
}
...
}
my_function(val1, val2, FLAG1 | FLAG2)

Exactly this. IMO we just need better ways of rendering a mailing list inbox as a series of issues/PRs. And maybe better tooling from IDEs to “open a PR” using
git send-email.Source hut is close to my ideal here, but still seems rather complex. Maybe I just don’t appreciate the necessary problems it solves yet.