[swift-evolution] [Review] SE-0006 Apply API Guidelines to the Standard Library
Dave Abrahams
dabrahams at apple.com
Thu Jan 28 00:42:57 CST 2016
on Wed Jan 27 2016, Dave <swift-evolution at swift.org> wrote:
> Huh… Yeah, you’re right. I guess I saw “CollectionType” and
> “CustomStringConvertible” or something and made a connection that
> wasn’t there.
> Well, FWIW, that convention (plus the occasional “HasNoun”, and
> -ableType for constraining the element of custom collections) tends to
> work well for me.
>
> What’s been the deciding factor between -Type and -able so far?
When there's no reasonable -able or -ible name, use -Type.
> - Dave Sweeris
>
>> On Jan 27, 2016, at 00:49, Dave Abrahams via swift-evolution
>> <swift-evolution at swift.org> wrote:
>>
>>
>> on Tue Jan 26 2016, Dave <swift-evolution at swift.org> wrote:
>>
>>>> On Jan 25, 2016, at 07:40, Radosław Pietruszewski via
>>>> swift-evolution <swift-evolution at swift.org> wrote:
>>>>
>>>> == Removed Type from protocol names ==
>>>>
>>>> Perhaps I’ve missed some discussion about this and I don’t see the
>>>> context, but I’m not sure this is a positive change.
>>>>
>>>> I fear this might be confusing in practice, at least in some
>>>> contexts. For example, there's nothing signifying that "Boolean" or
>>>> "Integer" are protocols and not actual types. Same with “Sequence”,
>>>> “OptionSet”, etc. Perhaps it doesn't matter because everyone will
>>>> naturally go for `Bool`, `Int`, and `Array` anyway. But I can
>>>> imagine a lot of confusion if someone tried that anyway, or perhaps
>>>> saw that in the autocompletion, or the standard library browser
>>>> (with no intention of using the protocol).
>>>>
>>>> I’m all for removing unnecessary noise and verbosity, but I think I
>>>> would err on explicitness side here. It seemed like the -able/-Type
>>>> convention did a good job disambiguating types you can actually
>>>> instantiate from protocols, with very little “verbosity cost”.
>>>
>>> Same here… I like -Type for protocols that can only be used a generic
>>> constraint, and -able/-ible for protocols that can be “concrete”
>>> types.
>>
>> But that's not how they're used. I'd have to rename Equatable and
>> Comparable to follow that convention.
>>
>> --
>> -Dave
>>
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org
>> https://lists.swift.org/mailman/listinfo/swift-evolution
>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
--
-Dave
More information about the swift-evolution
mailing list