<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body><div style="font-family:Arial;">I admit feeling great dismay at finally posting "MY REVIEW", given the generally sour nature of the discourse of the thread. However, I feel like it was a mistake to not have voiced my concern&nbsp;in the SE-0025 fight, so here we are.<br></div>
<div><br></div>
<div>On Mon, Mar 20, 2017, at 07:54 PM, Douglas Gregor via swift-evolution wrote:<br></div>
<blockquote type="cite"><ul style="padding-left:2em;margin-top:0px;margin-bottom:16px;color:rgb(36, 41, 46);font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';font-size:16px;background-color:rgb(255, 255, 255);"><li style="">What is your evaluation of the proposal?<br></li></ul></blockquote><div style="font-family:Arial;"><br></div>
<div style="font-family:Arial;">Overwhelmingly vehement +1 for any implementation this idea can take. I personally prefer reverting to Swift 2 behavior, full-stop.<br></div>
<div style="font-family:Arial;"><br></div>
<div style="font-family:Arial;">As others have noted, the text of the proposal leaves a little to be desired on some of the context. However, I do not believe this prevents making a decision on the matter. ("To post a proposal to Swift Evolution, one must first invent the universe…)<br></div>
<div style="font-family:Arial;"><br></div>
<blockquote type="cite"><ul style="padding-left:2em;margin-top:0px;margin-bottom:16px;color:rgb(36, 41, 46);font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';font-size:16px;background-color:rgb(255, 255, 255);"><li style="margin-top:0.25em;">Is the problem being addressed significant enough to warrant a change to Swift?<br></li></ul></blockquote><div style="font-family:Arial;"><br></div>
<div style="font-family:Arial;">The lack of proper consideration, caution, or even solid implementation of the scoped access modifier is the biggest mistake the Evolution community has made yet. It is a non-trivially broken feature with no plans to fix it. If I had to choose between the 15-ish implemented proposals created wholly by the community and not having ever had SE-0025 be a twinkle in anyone's eye, I'm honestly not sure which I'd choose.<br></div>
<div style="font-family:Arial;"><br></div>
<blockquote type="cite"><ul style="padding-left:2em;margin-top:0px;margin-bottom:16px;color:rgb(36, 41, 46);font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';font-size:16px;background-color:rgb(255, 255, 255);"><li style="margin-top:0.25em;">Does this proposal fit well with the feel and direction of Swift?<br></li></ul></blockquote><div style="font-family:Arial;"><br></div>
<div style="font-family:Arial;">In the most literal sense, it does not, but that's the point: Swift's thought on access control is in need of a course correction, for reasons I lay out in the next question.<br></div>
<div style="font-family:Arial;"><br></div>
<blockquote type="cite"><ul style="padding-left:2em;margin-top:0px;margin-bottom:16px;color:rgb(36, 41, 46);font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';font-size:16px;background-color:rgb(255, 255, 255);"><li style="margin-top:0.25em;">If you have used other languages or libraries with a similar feature, how do you feel that this proposal compares to those?<br></li></ul></blockquote><div style="font-family:Arial;"><br></div>
<div style="font-family:Arial;">I've had plenty of experience in other languages both with and without access control.<br></div>
<div style="font-family:Arial;"><br></div>
<div style="font-family:Arial;">This specific smell in Swift's access control is a sign of a simply untenable direction. I find C++ access control similarly untenable due to its confusing variations and edge cases. Swift is heading down a similar path.<br></div>
<div style="font-family:Arial;"><br></div>
<div style="font-family:Arial;">Swift has the laudable goal of being a multi-modal and multi-paradigm language. That does not mean it cannot be opinionated. Inspecting access control in a single file is trivial, and if it's not, that's your problem. I don't care at this point to hear the gospel of all the magic I can accomplish in unmaintainable large files.<br></div>
<div style="font-family:Arial;"><br></div>
<div style="font-family:Arial;">I keep thinking of SE-0009, which was rejected quite plainly for "introduc[ing] a significant amount of verbosity that does not justify itself with added clarity". After being immersed in this topic for what feels like eons, and having my own opinions explained to me several times, I truly cannot see how scope-private/the fileprivate change was any different.<br></div>
<div style="font-family:Arial;"><br></div>
<div style="font-family:Arial;">Nowadays, my codebases are littered with chains of attributes like `@IBOutlet fileprivate private(set) weak var`. It look less like working in a language of sane defaults and look more like I had a stroke while typing it out. This change has been the antithesis of clarity, and the inability of +1-ers to see it any other way than theirs is an upsetting application of, "F*** you, got mine." I'm glad you all understand the change and have incorporated it into your work, I really am. I haven't; I still don't.<br></div>
<div style="font-family:Arial;"><br></div>
<blockquote type="cite"><ul style="padding-left:2em;margin-top:0px;margin-bottom:16px;color:rgb(36, 41, 46);font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';font-size:16px;background-color:rgb(255, 255, 255);"><li style="margin-top:0.25em;">How much effort did you put into your review? A glance, a quick reading, or an in-depth study?<br></li></ul></blockquote><div style="font-family:Arial;"><div id="sig40804545"><div class="signature"><br></div>
<div style="font-family:Arial;">I have followed the thread(s) closely, and done much follow-up and discussion about this issue off the mailing lists.<br></div>
<div style="font-family:Arial;"><br></div>
<div style="font-family:Arial;">I beseech the Core Team to act decisively to restore sanity to this part of the language. I don't care if that means being for or against this particular proposal. I don't care if it's a spelling change, hinting at a future plan for submodules, or explaining what the happy path will be for creating modules  in Xcode 9. I just ask that they think of the developers who are being underrepresented in this discussion out of inexperience, lack of understanding, or, worse, having stopped using Swift in frustration.<br></div>
<div style="font-family:Arial;"><br></div>
<div style="font-family:Arial;">I am now absolutely thrilled to create a filter to Mark As Read anything else arising from this thread. Good luck.<br></div>
<div style="font-family:Arial;"><br></div>
<div style="font-family:Arial;"><span class="font" style="font-family:arial, sans-serif, sans-serif">Sincerely,</span><br></div>
<div class="signature"><span class="font" style="font-family:arial, sans-serif, sans-serif">&nbsp; Zachary 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 style="font-family:Arial;"><br></div>
</div>
</div>
<div style="font-family:Arial;"><br></div>
</body>
</html>