<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div></div><div style="direction: inherit;"><br></div><div><br>On Feb 19, 2017, at 7:16 AM, Matthew Johnson via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt; wrote:<br><br></div><blockquote type="cite"><div><span></span><br><span></span><br><span>Sent from my iPad</span><br><span></span><br><blockquote type="cite"><span>On Feb 19, 2017, at 7:55 AM, David Hart via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt; wrote:</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><blockquote type="cite"><span>On 19 Feb 2017, at 10:20, Goffredo Marocchi via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt; wrote:</span><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><span></span><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><span>The current private is closer to other languages than the previous one we had which now has in fileprivate a better name.</span><br></blockquote></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>It is closer, but it's not a goal for Swift to always follow conventions of other languages. It's useful sometimes. But in this case it goes directly against the philosophy of Swift's extension feature. Swift should be allowed to go against the norm when it serves the languages. And in this case, if only one private should exist, it's the file-s open one.</span><br></blockquote><span></span><br><span>Yes, I think making private not work well with extensions was the "actively harmful" aspect of SE-0025. &nbsp;Scoped access itself is not actively harmful and should not be removed, but it could be renamed so that private works the way people want it to again.</span><br><div style="direction: inherit;"><br></div></div></blockquote><div style="direction: inherit;">I think this an excellent point. In your proposal you can also mention that perhaps the renaming on private to mean scope private was premature since the primary goal was to match other languages notion on private. The issue is that Swift's public does not match other languages public. Should we then also change Swift's public to mean the established meaning of public in other languages? By no means! Swift is different. We agree that scope private is useful to some people by we believe that it is the wrong default for Swift. It is actively harmful in that by making it the default it forces a programmer to think fileprivate the moment the want to extend a type and access their private members. This in turn forces every programmer to have to deal with two access modifiers before they even make anything public. We believe this goes against the swift &nbsp;centric feature of extensibility via extensions and the philosophy of "<b>the complexity inherited in the language needs to be progressively disclosed".</b> In the same way that public doesn't make classes open, private should not be scope private.&nbsp;</div><div style="direction: inherit;"><br></div><div style="direction: inherit;">This will make it possible for people to lock down in steps instead of all together which doesn't work with extensions. &nbsp;</div><div style="direction: inherit;"><br></div><div style="direction: inherit;">We need more examples to make this case.&nbsp;</div><div style="direction: inherit;"><br></div><div style="direction: inherit;"><br></div><div style="direction: inherit;"><br></div><blockquote type="cite"><div><span></span><blockquote type="cite"><span>_______________________________________________</span><br></blockquote><blockquote type="cite"><span>swift-evolution mailing list</span><br></blockquote><blockquote type="cite"><span><a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a></span><br></blockquote><blockquote type="cite"><span><a href="https://lists.swift.org/mailman/listinfo/swift-evolution">https://lists.swift.org/mailman/listinfo/swift-evolution</a></span><br></blockquote><span></span><br><span>_______________________________________________</span><br><span>swift-evolution mailing list</span><br><span><a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a></span><br><span><a href="https://lists.swift.org/mailman/listinfo/swift-evolution">https://lists.swift.org/mailman/listinfo/swift-evolution</a></span><br></div></blockquote></body></html>