[swift-evolution] [Review] SE-0059: Update API Naming Guidelines and Rewrite Set APIs Accordingly
michel.fortin at michelf.ca
Sun Apr 3 08:41:24 CDT 2016
> What is your evaluation of the proposal?
I don't like "form" as a prefix. To me there is no difference between `union` and `formUnion`: both sounds functional-style, and actually the second one perhaps a bit more to my ears. There's basically two dictionary definitions of "form":
1. "bring together parts or combine to create (something)" which to me implies a new value is created, and
2. "make or fashion into a certain shape or form" which would imply that the material you start with is transformed, which is apparently the intended meaning and also the reverse meaning from the above.
I mean, doesn't this make sense as an API?
let donut = baker.formDonut(dough) // non-mutating
Perhaps instead of "form" we could use "become" as a prefix when the operation is naturally described by a noun. That would seem less ambiguous to me:
It's a bit passive, but I find it fits well when the operation is a noun.
And there's no way the term lends itself to non-mutating cases without things becoming nonsensical:
let donut = baker.becomeDonut(dough) // non-mutating?
> Is the problem being addressed significant enough to warrant a change to Swift?
I'm still not entirely convinced any of this is better than the `InPlace` suffix we had before. `InPlace` might be ugly visually and grammatically, but seems to be the clearest at expressing the intent.
> Does this proposal fit well with the feel and direction of Swift?
There is no question that using a verb instead of the `InPlace` suffix makes things fits better with the other API guidelines.
> If you have used other languages or libraries with a similar feature, how do you feel that this proposal compares to those?
> How much effort did you put into your review? A glance, a quick reading, or an in-depth study?
Read the guideline and API diffs, thought about a few alternative wording, looked in my dictionary.
More information about the swift-evolution