>       • What is your evaluation of the proposal?

Renaming `fileprivate` to `private` makes sense. In my code, I use 
`fileprivate` and `private` interchangeably, meaning that I write `private` for 
things that shouldn't be leaked to the whole module and if by chance the 
compiler complain I'll change it to `fileprivate` without a second thought. 
This tells me that I'm using the feature wrong: I should be writing 
`fileprivate` everywhere and narrowing it to `private` only where it is really 
important that I do so. But a name like `fileprivate` makes this rather 
difficult.

So I'd be glad to see that problem go away.


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

I think it is significant enough. I think the core team's evaluation for Swift 
3 that `fileprivate` would be rarely used was completely mistaken. Worse, 
forcing the use of the dirtier word `fileprivate` is draining all thoughtful 
intent from `private` in Swift 3. It's not a good thing when `private` is used 
only because it compiles and changed to `fileprivate` on a whim whenever the 
compiler complains.

While I don't have much attachment to the scoped-private concept, I'm not 
convinced its total removal is necessary either. Alternative 3 might solve this 
problem with less disruption to the language. While it offers some room to 
replicate the same problem I described above -- with different keywords -- I 
feel using a word like `scoped` would be less prone to overuse than `private` 
and therefore more truthful to the actual intent. If so, that would fix the 
problem too.

Either way, something must be done.


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

I think it does. The conflation of `private` and `fileprivate` at the top level 
of the file always sounded indicative to me of a flaw in the design. Correcting 
this would be an improvement.


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

I'm used to D where `private` has the pretty much same meaning as `fileprivate` 
in Swift. I never found that much of a problem. But I've seen similar debates 
there too.


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

I've read the proposal and most of the discussion, even though I haven't 
participated much.


-- 
Michel Fortin
https://michelf.ca

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

Reply via email to