Another use case for __traits(docComment)

Jab jab_293 at gmall.com
Thu Nov 14 17:00:04 UTC 2019


On Thursday, 14 November 2019 at 07:50:31 UTC, Jonathan Marler 
wrote:
> On Thursday, 14 November 2019 at 03:17:38 UTC, Steven 
> Schveighoffer wrote:
>> On 11/13/19 6:03 PM, Adam D. Ruppe wrote:
>>> On Wednesday, 13 November 2019 at 22:53:49 UTC, Steven 
>>> Schveighoffer wrote:
>>>> I'm trying to save the reviewers and the maintainers. Code 
>>>> review shouldn't include reviewing stuff that isn't compiled.
>>> 
>>> Documentation is a key component of code review. And any code 
>>> reviewer would surely be skeptical of a __trait(getDoc) that 
>>> does anything other than use it for documentation.
>>
>> Where it starts becoming a problem is when users of a library 
>> say "you changed your docs, and it broke my code". This is 
>> always the argument against named parameters (you changed 
>> parameter X's name, and it broke my code).
>>
>
> I'm in the camp of having parameters names "private by default" 
> and requiring libraries to opt-in to exposing them.  By my 
> estimate, named parameters are only useful about 15% of the 
> time.
>  Up till now, D code is written assuming that parameter names 
> are private.  They're inconsistent and not well thought out 
> because they were never part of the function interface. We 
> could come up with naming standards and go through all the code 
> to fix this, which would be a big effort, but it's hard to 
> justify if only a small percentage of functions would actually 
> benefit from named parameters.  By making them "opt-in" you can 
> fix these things before you expose them.

That shouldn't be up to the developer of the library. If I want 
to use named parameters and I go look at the function and I see 
the author gave them horrible names. I'm probably not going to 
continue to use it and I'd probably find a different library to 
use. It's already considered bad practice to give parameters bad 
names. It is unfortunate that Phobos has some horrible names but 
it doesn't really follow a lot of best practices all together.

Making them opt-in makes the feature pointless and more 
convoluted. It's the user's choice whether they want to use them 
or not. It shouldn't be the author of a library dictating where 
the user can use named parameters.

I've seen library maintainers for C++ include function parameter 
name changes as part of the change log. Even though C++ doesn't 
have named parameters. Cause in reality the parameter name is 
already part of the interface and documentation of a function. 
That's some of the only information a user of the library sees 
when they go look at it. Developers should be giving them 
meaningful names, with or without named parameters. I don't think 
we should make a feature more convoluted because some individuals 
have bad naming practices in general.



More information about the Digitalmars-d mailing list