On Tue, May 24, 2016, at 11:07 AM, Chris Lattner wrote:
>       * What is your evaluation of the proposal?

-1. The only real rationale here is "other keywords that are compound words are 
all lowercase instead of camelCase" (except for dynamicType). But that's not a 
very compelling argument. More generally, I think `willSet` and `didSet` just 
looks better, and I think this may be because they are different types of 
phrases entirely than associatedtype, typealias, and fallthrough (they're 
certainly classified differently grammatically; willSet and didSet are verb 
pharses, associatedtype is an adjective phrase, typealias is a noun modifier 
[which is like an adjective phrase], and fallthrough is a compound word with 
precedent in other languages). They're also companions to the `set` 
declaration. Since `set` is a distinct concept in its own right, `willSet` and 
`didSet` highlight the fact that they're modifiers on the word `set`. In fact, 
if we had a distinct `type` declaration, then I think I'd want to change 
`associatedtype` into `associatedType`. The camel casing makes it more obvious 
that this is a variant on the root word, whereas all-lowercase implies that the 
entire conjoined phrase is a single standalone concept.

Also, as others have already pointed out, willSet and didSet will hopefully end 
up as property behaviors rather than language keywords, and in that case the 
stated rationale doesn't apply.

>       * Is the problem being addressed significant enough to warrant a change 
> to Swift?

No. The rationale for this can largely be summed up as aesthetic preference and 
it's pretty subjective.

>       * Does this proposal fit well with the feel and direction of Swift?

Does bikeshedding syntax count as fitting with the feel and direction of Swift? 
;)

>       * If you have used other languages or libraries with a similar feature, 
> how do you feel that this proposal compares to those?

I'm having trouble thinking of a relevant language that uses phrases for 
keywords. I believe all of the keywords in Rust are single words. Haskell 
actually uses phrases rather than conjoined keywords, e.g. `data instance`, 
`type family`, etc. Obj-C/C generally uses snake_case.

>       * How much effort did you put into your review? A glance, a quick 
> reading, or an in-depth study?

A quick reading of the proposal and a reading of the review thread to date.

-Kevin Ballard
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to