<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body><div style="font-family:Arial;">On Tue, Mar 21, 2017, at 07:44 PM, Drew Crawford via swift-evolution wrote:<br></div>
<blockquote type="cite"><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;"><div style="color:rgb(0, 0, 0);font-family:Helvetica, Arial;font-size:13px;"><blockquote type="cite" style="font-family:Helvetica, Arial;font-size:13px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;-webkit-text-stroke-width:0px;"><div dir="ltr"><div><div defang_data-gmailquote="yes">When new `private` and `fileprivate` were shipped, there were numerous questions asked by users on forums such as Stack Overflow<br></div>
</div>
</div>
</blockquote></div>
<div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;"><div><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;"><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;"><br></div>
<div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;">And before they were shipped, there were people asking for a scoped modifier. &nbsp;And when we change them again, what questions will that generate? &nbsp;So I don’t see what we are accomplishing with this line of inquiry.<br></div>
<div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;"><br></div>
<div><blockquote type="cite" style="font-family:Helvetica, Arial;font-size:13px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;-webkit-text-stroke-width:0px;border-top-width:1px;border-right-width:1px;border-bottom-width:1px;padding-left:5px;border-left-width:1px !important;border-left-color:rgb(0, 64, 128) !important;"><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;"><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;"><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;"><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;">You see the new access modifiers described, for example, as something that "take[s] some getting used to." Rather damning as a euphemism, don't you think?&nbsp;<br></div>
</div>
</div>
</div>
</blockquote></div>
<p>Not at all. &nbsp;We could describe strong typing, or optionals, enums, pattern matching, etc., in this way. &nbsp;ARC in particular is “difficult to teach” but we should not get rid of it, it solves a safety problem. &nbsp;A scoped access modifier is similar.<br></p></div>
</div>
</div>
</div>
</blockquote><div style="font-family:Arial;"><br></div>
<div style="font-family:Arial;">These two points are where I have to jump in. As someone who actually teaches Swift, and not just lectures others about it on the mailing lists, both of these arguments are terribly fallacious. Core Swift features like optionals are fundamental to the idea of the language, that have semantic meaning and impact on  compiled code.<br></div>
<div style="font-family:Arial;"><br></div>
<div style="font-family:Arial;">People are thrilled to learn how to use enums because they make for a better time writing code. These access modifier are can only charitably be called code flavor. I have spent entire weeks of class trying to extoll the benefits, so breathlessly shared on these mailing lists, of how beautiful it is to have a scoped access level. I have yet to succeed. They frustrate readers and they are a constant source of roadblocks for the inexperienced.<br></div>
<div style="font-family:Arial;"><br></div>
<div style="font-family:Arial;">Segregating private and fileprivate are, at best, a distraction, and at worst are actively imposing on all of us the personal code style preferences of those that were most active on the mailing lists while Swift 2 was open.<br></div>
<div style="font-family:Arial;"><br></div>
<div style="font-family:Arial;">It doesn't matter if desire for using extensions is the root of the problem. Swift should only impose a preference when it's important to the speed, functionality, and safety of the language. I have yet to be convinced that there's a benefit to a scoped access level that fits anywhere in there.<br></div>
<div style="font-family:Arial;"><br></div>
<div><div class="signature"><div><div class="signature"><span class="font" style="font-family:arial, sans-serif, sans-serif">Best,</span><br></div>
<div class="signature"><span class="font" style="font-family:arial, sans-serif, sans-serif">&nbsp; Zach Waldowski</span><br></div>
<div class="signature"><span class="font" style="font-family:arial, sans-serif, sans-serif">&nbsp;&nbsp;</span><a href="mailto:zach@waldowski.me"><span class="font" style="font-family:arial, sans-serif, sans-serif">zach@waldowski.me</span></a><br></div>
</div>
<div><div style="font-family:Arial;"><br></div>
</div>
</div>
</div>
<div style="font-family:Arial;"><br></div>
</body>
</html>