> On Jul 19, 2016, at 10:50 PM, Chris Lattner via swift-evolution
> <[email protected]> wrote:
>
> * What is your evaluation of the proposal?
I think the colon has too little visual weight for this role. In a property
declaration, the colon sits to the right of an identifier:
var widgetID: WidgetUUID
But in a subscript, it sits to the right of a long, punctuation-filled, and
potentially convoluted parameter list:
subscript(id widgetID: WidgetUUID): Widget { … }
In this environment, the colon vanishes. Using arrow instead gives us a symbol
that not only stands out more, but which is conventionally given spacing on
both sides. Both of these assist you in seeing the symbol, helping you visually
parse the declaration. It also helps that this symbol is not the same one used
at least once and sometimes more often within the parameter list itself.
Thus, we have the current syntax:
subscript(id widgetID: WidgetUUID) -> Widget { … }
I understand where the impulse comes from, I really do. Looked at as an
abstract question, colon is more correct, because there's no function involved
here. But subscript syntax faces many of the same challenges that led to the
adoption of the arrow in functions, and I think we have to go where those human
factors lead us.
> * Is the problem being addressed significant enough to warrant a change
> to Swift?
Yes, I think proposals on this topic are appropriate.
> * Does this proposal fit well with the feel and direction of Swift?
No; I think that's where this proposal falls down. Swift happily emphasizes
clarity over purity, and I think arrow is clearer.
> * If you have used other languages or libraries with a similar feature,
> how do you feel that this proposal compares to those?
Off the top of my head, I can't think of one with an analogous issue.
> * How much effort did you put into your review? A glance, a quick
> reading, or an in-depth study?
Glance.
--
Brent Royal-Gordon
Architechies
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution