[swift-evolution] Make access control private by default.
    Knut Lorenzen 
    lo.knut at gmail.com
       
    Sun May 15 14:15:30 CDT 2016
    
    
  
I think internal as default is bad, because it discourages encapsulation.
Building scalable software components relies on hiding implementation details to create layers of abstraction. It’s a fundamental principle of object-oriented software design. Most other OOP languages have private default.
The linked doc doesn’t explain the advantages of internal as default in detail:
> By default, most entities in a source file have internal access. This optimizes for the most common case—a single-target 
> application project—while not accidentally revealing entities to clients of a framework module.
Optimizes for what? Build time? Brevity?
Knut
> Have your read
> https://github.com/apple/swift/blob/master/docs/AccessControl.rst?
> 
> I prefer the current rationale behind "internal" by default.
> 
> Stephen
    
    
More information about the swift-evolution
mailing list