On Tuesday, 24 October 2017 at 19:22:41 UTC, Jonathan M Davis
wrote:
Personally, I don't want them in D. If you have enough
arguments that it matters, then the function probably has too
many parameters or too many similar parameters. And as a
library writer, I don't want to have the parameter names be
part of the API. There are already enough problems getting the
type and function names right without having to worry about
bikeshedding over parameter names as well, and if we had named
arguments, then you couldn't change parameter names without
breaking code. It also wouldn't play well with separate
compilation unless the parameter names were mangled into the
function names, and symbol names in D are already too often too
long due to idioms like Voldemort types creating really long
symbol names. Recent work on the compiler has reduced that
problem, but adding more information to mangled names would
definitely not help.
- Jonathan M Davis
Some good points. I realized that most of the languages that have
named parameters are dynamically typed ones (Python/R) or ones
with VMs (C#/Scala). Fortran has named parameters and function
overloading, but I think it's a little quirky and not like C++
and D as far as I can tell.