> Am 17.08.2017 um 20:11 schrieb Haravikk via swift-evolution 
> <[email protected]>:
> 
> For me the whole point of a basic protocol is that it forces me to implement 
> some requirements in order to conform; I can throw a bunch of protocols onto 
> a type and know that it won't compile until I've finished it, developers get 
> distracted, leave things unfinished to go back to later, make typos etc. etc. 
> To me declaring a conformance is a declaration of "my type will meet the 
> requirements for this make, sure I do it", not "please, please use some magic 
> to do this for me"; there needs to be a clear difference between the two.

My conclusion isn't as pessimistic as yours, but I share your objections: 
Mixing a normal feature (protocols) with compiler magic doesn't feel right to 
me — wether it's Equatable, Hashable, Codable or Error.
It's two different concepts with a shared name*, so I think even AutoEquatable 
wouldn't be the right solution, and something like #Equatable would be a much 
better indicator for what is happening.

Besides that specific concern, I can't fight the feeling that the evolution 
process doesn't work well for proposals like this:
It's a feature that many people just want to have as soon as possible, and 
concerns regarding the long-term effects are more or less washed away with 
eagerness.

- Tino

* for the same reason, I have big concerns whenever someone proposes to blur 
the line between tuples and arrays
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to