[swift-evolution] [Review] SE-0023 API Design Guidelines
dabrahams at apple.com
Tue Feb 2 10:16:51 CST 2016
on Mon Feb 01 2016, Erica Sadun <erica-AT-ericasadun.com> wrote:
>> Dave, Breaker of Worlds, Hammer of Cocoa, Bringer of Swift:
>>> The guidance says: "Protocols that describe what something is should
>>> read as nouns (e.g. ). Protocols that describe a capability should be
>>> named using the suffixes , ible , or ing (e.g. Equatable ,
>>> ProgressReporting )."
>> You dropped aout "able" before the comma.
> 1. That would explain a lot.
> 2. Cut & paste. I swear.
>>> "should be named using -ble or -ing suffixes (e.g. Equatable,
>>> ProgressReporting)". (no "a/i" mismatch, easier to read,
>> I don't understand how that improves things. Some words just *do* use
>> an "ible" form (e.g. fallible)
> 3. Because you were saying just ible not able and ible. (see points 1 and 2)
> (Some day Able and Ible will be a web comic series about mutant
> supernatural linguists, I'm sure of it.)
Read the page again; both suffixes are listed.
>> Substance, mostly picking up from stuff you've said in response:
>>> Protocols should express well-defined, testable semantics. Their names
>>> should express those semantics in a clear and succinct matter.,
>>> specifically by naming what a conforming type is (use nouns), does
>>> (use -ing suffixes), or a capacity it provides (use -ble
>>> suffixes). For example, a protocol can be a `Collection` or
>>> `DataSource`. It can do `ProgressReporting` or
>>> `DownloadProcessing`. It can provide the capability for being
>>> `Equatable` or `IntegerInitializable`.
>> That seems like a nice addition.
>>> Matthew J and I add:
>>> <https://github.com/apple/swift-evolution/pull/60>> to introduce
>>> precise conventional
>>> meanings for conversion suffixes. (Createable, Convertible,
>>> Representable), which I'd love for you to consider
>>> under the SE-0023 API Design Guidelines review. I think it's applicable.
>> Yes, let's get that on the review schedule after this.
More information about the swift-evolution