[swift-evolution] API Guidelines Update

Dave Abrahams dabrahams at apple.com
Thu Feb 18 18:30:54 CST 2016


Hi again Charles,

I've been thinking about this response and I realized it might have left
you feeling that you hadn't been heard.  If that's the case I apologize,
and ask that you try again to make your point.  I *think* I understood
you, but of course it's impossible to be sure.

on Thu Feb 18 2016, Dave Abrahams <swift-evolution at swift.org> wrote:

> on Thu Feb 18 2016, Charles Kissinger <crk-AT-akkyra.com> wrote:
>
>> I’m not arguing the importance of this objection, just that I
>> understand it and think it’s valid.
>
> Though “ing” is a relatively uncommon usage, when used as
> prescribed IMO it reads pretty naturally, and is a good match for
> some important criteria:
>
> * it associates mutating and non-mutating forms
> * it's a syntactic match for method invocation, with the receiver on the
>   left
> * it preserves “fluency,” making code “read like English”
>
> If you have better ideas for how to satisfy these criteria, I'd be happy
> to hear them.
>
> We could debate the value of fluency in APIs, but I'd like to point out
> two things:

or three.

>
> 1. This API guidelines and renaming effort skewers many heretofore
>    sacred cows, which has been incredibly difficult to achieve
>    politically.  A year ago, the idea that we would ever apply “omit
>    needless words” to Cocoa was unthinkable.  IMO we've targeted the
>    cows that do definitive damage.
>
> 2. Fluency is itself deeply valued by many in our community, and has
>    influenced the design of core Swift at a fundamental level
>    (e.g. argument labels that are mandatory at the call site).
>
> 3. Properly applied (thus, no fair bringing up “unioning”), fluency does
>    no damage and in many cases improves clarity.  Connecting words like
>    prepositions can make the difference in implied meaning,
>    e.g. x.update(y) vs x.update(using: y).
>

-- 
-Dave



More information about the swift-evolution mailing list