I&#39;d like to share with the group an approach to access control that I&#39;ve been thinking of, inspired by python philosophy.<div><br><div>What if we by default we don&#39;t have access control at all? Everything is open to anyone. IMHO novice users will find it easier. Experienced users will find that they need to type less. Enterprise / professional / security &amp; privacy concerns will be addressed by supporting a simplistic model access control:</div><div><br></div><div>&#39;all&#39; - same as not specifying anything, meaning open.</div><div>&#39;family&#39; - accecible from within the given module.</div><div>&#39;private&#39; - accessible from definition scope, i.e &quot;file&quot;.</div><div><br></div><div>*another name of &quot;family&quot; I can think of is &quot;safe&quot; because all files in the module have mutual trust but it might lead people to think that without it their code would somehow not be secure..</div></div><div><br></div><div>So basically I&#39;m suggesting 2 things</div><div>1. Make public access be the default</div><div>2. Adopt a scope based simple model for access control of file, module, world.</div><div><br></div><div>I think this covers most of the requirements of every day software needs, based on my experience of writing backend code, core libraries code and iOS code. Wearing both the had of library makers as well as consumer of 3rd party code. Mostly this solves the issue of professional devs know to stick to public API&#39;s because you know better, but at times when you do need to access under the hook you&#39;re either locked out for now good reason or need to do substantially complex hacks only because SDK / library couldn&#39;t imagine your use case.</div><div><br></div><div>Final note, it&#39;s my personal opinion that the current access control in swift is attempting to optimize for edge cases which is probably not the best approach in what is positioned to be a general purpose language.</div><div><br></div><div>Would appreciate feedback.</div><div>Max.</div>