Neil Girdhar writes:
I agree with everything you're saying. Another reason to prefer keyword arguments is that they simplify the interface and make it easier to learn.
No, they simplify the *default* interface and make *that* easier to learn. Who could be against that?
The issue is "what about the case where there's no TOOWTDI default?" Where TOOWTDI is somewhere around "more than 80% of the time for more than 80% of the users when they want a specific value for the parameter every time on this code path" (vs. choosing that value at runtime).