> On Dec 23, 2015, at 2:08 AM, Brent Royal-Gordon via swift-evolution 
> <[email protected]> wrote:
> 
>>> I did see that point made earlier in the thread, but I’m not convinced that 
>>> design for googleability is the right ordering of priorities. 
>> +1
>> Choosing cryptic names because it's easier to find information about them is 
>> bad. With this argument, you can not only fight against removal of the 
>> NextStep prefix (Data, Number, Date… try googling that), but also demand 
>> that the language should be spelled "Sweeft", and that framework functions 
>> should loose their meaningful names and get called by a UUID instead.
> 
> I don't think the `associated` keyword is cryptic; I think it's *specific*. 
> "Associated type" is the name of this feature. We tried bikeshedding it 
> upthread, and didn't come up with anything better. If you're going to use a 
> keyword related to the name "associated type", that leaves you with 
> `associated`, `type`, or `associatedtype`. 

Of the three, I prefer “associatedtype”.

We already have precedent for concatenated names in a very related sort of decl 
(typealias), and this will be a real keyword.


Here are how I see the pros and cons I see of these options:

type:
- Overly short, particularly given the infrequency of these decls, the common 
case of “type Element” will be weird floating around given its lack of weight.
- Overly unclear.  This is a very specific kind of type, not a generic type you 
can use in other contexts.
- Unfortunate keyword.  Among other things it would make writing compilers in 
swift a pain :-), but again, people would want to use this in other places.

associated:
 - Vacuous: doesn’t mean anything on its own:  “associated Element”.
 - Somewhat unfortunate as a keyword, but much less so than type.

associatedtype:
 - Clean in context: “associatedtype Element”
 - Obvious you wouldn’t want to use it in another context.
 - Googlable, unambiguous

-Chris
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to