> On Apr 4, 2017, at 6:45 PM, Brent Royal-Gordon <[email protected]> wrote:
> 
> Access control is a tar pit; let's not drown in it.


Amending this: The precise boundaries of lower-than-`fileprivate` levels of 
access control—what we're discussing here—are a tar pit. There are gains to be 
made by removing an access control level, but that's not an option. There are 
gains to be made between `fileprivate` and `internal`, and between `internal` 
and `public`, but those are not what we're considering here. There *may* be 
gains to be made by a ` `private` -> `scoped`/`fileprivate` -> `private` switch 
(I'm skeptical, but I can see the argument), but that's not in the offing, 
either.

Fiddling with the precise boundaries of `private` will have three effects:

        1. Some users will find it more useful.

        2. Other users will find it less useful.

        3. *Every* user, happy or not, will have to re-learn what `private` 
does for the second time in two years.

It does not seem possible to determine whether #1 or #2 will predominate. This 
is different from most proposals we consider: We are pretty confident that 
adopting key paths or making `String` into a `Collection` will be more helpful 
than harmful, but I don't think that's true of fiddling with `private`. And #3 
is a certain, significant, and unambiguously negative effect.

-- 
Brent Royal-Gordon
Architechies

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

Reply via email to