[swift-evolution] [Review] SE-0159: Fix Private Access Levels

Matt Whiteside mwhiteside.dev at gmail.com
Wed Mar 22 01:29:23 CDT 2017


> What is your evaluation of the proposal?
+1.

> Is the problem being addressed significant enough to warrant a change to Swift?
Yes.  Even though I can see how scoped access is occasionally useful, I know that it comes at the cost of implementation complexity, which slows down other features that are, in my opinion, more interesting.  Even if it didn’t put a burden on implementors, 4 access levels (or is it 5?) seems like too many.

One point which was raised by a couple of different people on this thread (Brent Royal-Gordon, Jonathan Hull), which gave me some hesitation in voting in favor of this proposal, is that it might make more sense to leave things alone for the time being, with the understanding that scoped access will be solved in some more general way via submodules in the future.  The submodule approach does seem like the way to go, but I still think it’s worth making this change in the present.  While the thought of breaking existing codebases is not a pleasant one, I believe that the reduction in compiler complexity gained in comparison to the rarity (and obscurity) of the use cases justifies it.

> Does this proposal fit well with the feel and direction of Swift?
Yes.  In the sense that elegance decreases as more keywords are added.

> If you have used other languages or libraries with a similar feature, how do you feel that this proposal compares to those?
I’ve not used a language that has extensions that could live in multiple files or has more than 3 access control keywords, so I can’t think of any relevant comparisons.

> How much effort did you put into your review? A glance, a quick reading, or an in-depth study?
Spent about 2 hours, as well as having followed some of the discussion in previous weeks.

> More information about the Swift evolution process is available at
> 
> https://github.com/apple/swift-evolution/blob/master/process.md <https://github.com/apple/swift-evolution/blob/master/process.md>
> Thank you,
> 
> -Doug
> 
> Review Manager
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20170321/8a33ac4b/attachment.html>


More information about the swift-evolution mailing list