<html><head><style>body{font-family:Helvetica,Arial;font-size:13px}</style></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;"><br></div> <br> <div id="bloop_sign_1490417503554199808" class="bloop_sign"><br></div><p class="airmail_on">On March 24, 2017 at 11:20:59 PM, Jonathan Hull (<a href="mailto:jhull@gbis.com">jhull@gbis.com</a>) wrote:</p> <div><blockquote type="cite" class="clean_bq" style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;"><span><div><span style="color: rgb(0, 0, 0); font-family: 'helvetica Neue', helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); float: none; display: inline !important;">You were the one who said redundancy was a *goal* of swift, which it is not.</span></div></span></blockquote></div><p>You misunderstand. &nbsp;I'm arguing that the design of Swift is to have concept pairs – private/fileprivate, class/struct, let/var – in which one element of the pair is a superset of the other. &nbsp;That is: we could convert a let/var program to use only var, we could convert a private/fileprivate program to use only fileprivate, etc., and yet we stubbornly persist to have all these keywords.</p><p>This property has been labeled "redundancy" by people who dislike it. &nbsp;I'm saying that whatever unkind name we decide to call it, it's a Swiftism, and we embraced it a long time ago.</p><p>Perhaps I just do not understand your argument, but it seems to be</p><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; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -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;">In your examples above, Swift is projecting a system image which is much simpler than the underlying concepts...&nbsp;For access controls, the user is being presented with the full complexity of that choice directly.</blockquote></div><p>This seems simply inaccurate to me. &nbsp;For example, I am the top search result for "swift struct or class" and my explanation is 27 pages. &nbsp;Admittedly I am an insufferably longwinded writer who can't find the delete key, but for whatever reason Google seems to think my explanation is helpful to people struggling with that topic.</p><p>While it is true that access control presents users the "the full complexity of that choice directly", this is because the choice is not actually complex. &nbsp;One keyword is visible to a file and the other to a scope. &nbsp;I could not produce 27 pages on that topic.</p><p><br></p><div></div><div></div></body></html>