DIP 1019--Named Arguments Lite--Community Review Round 1

Yuxuan Shui yshuiv7 at gmail.com
Mon Mar 4 11:55:33 UTC 2019


On Sunday, 3 March 2019 at 10:50:05 UTC, Joseph Rushton Wakeling 
wrote:
> On Friday, 1 March 2019 at 00:49:25 UTC, Rubn wrote:
>> I don't agree with this at all. The feature becomes all but 
>> useless, it's either all in or just don't include it. So many 
>> things are already part of the API, and this will be an opt-in 
>> feature for the user (not the library developer). The user can 
>> choose to use the variable names if they want, knowing full 
>> well if the author pleases they can change it, but this will 
>> be no different than changing the variable name of struct.
>
> It's not comparable to changing the variable name of a struct, 
> because if that struct is a public data structure in a library, 
> changing its field names is a breaking change.  Downstream 
> users should be able to rely on a library maintainer not doing 
> that except in a major release (and even then, providing a 
> clear heads-up and transition path; it might work in some cases 
> to e.g. rename the struct field but add a `deprecated alias 
> oldName = newName`, and then drop that alias only in the next 
> major release).
>
> If the language design is changed so that downstream users 
> _can_ use named arguments, then library maintainers have to 
> assume that they _will_, and treat parameter names accordingly.
>  It's no good just saying "I don't support this", because if 
> you can't enforce such a constraint ahead of time, you are on a 
> hiding to nothing.
>
> If API opt-in to named parameter support is not adequate, then 
> it's better to drop the feature request entirely, because it is 
> not reasonable to impose a big new responsibility like named 
> arguments on maintainers of existing codebases.

Agree completely. Finally someone arguing from this side :)


More information about the Digitalmars-d mailing list