The word 'external' is growing on me but as the (module access). 

public (unchanged)
external (module access)
internal (file access)
private (scoped access)

module access = has external access from other files in the module. 
file access = has internal access to current file
scope access = has only access to the current scope. 

Private will align with other languages definition of private. 
I don't think public should change and I don't like all the others to be called 
private(levelofprivacy).




> On Mar 25, 2016, at 7:32 PM, Sean Heber via swift-evolution 
> <[email protected]> wrote:
> 
> I'll throw another suggestion into the ring:
> 
> private (scoped access)
> public (file access)
> internal (module access)
> external (infinity and beyond)
> 
> l8r
> Sean
> 
> Sent from my iPad
> 
>> On Mar 25, 2016, at 8:57 PM, Ross O'Brien via swift-evolution 
>> <[email protected]> wrote:
>> 
>> The specific meaning of 'public' and 'private' in programming languages 
>> refers to type-based symbol visibility. I'm thinking of C++, C#, Java and 
>> Objective C; their 'public' is Swift's 'internal'. They have no equivalent 
>> to Swift's 'public'. Swift has no equivalent to their 'private'.
>> 
>> Possibly my familiarity with other languages isn't broad enough, but this is 
>> why I haven't understood the idea that Swift's use of 'private' is "right" 
>> or "obvious". You learn Swift's meanings of these terms by coding in Swift, 
>> you don't learn these meanings anywhere else first.
>> 
>> To use a hopefully recognised example: an American who wants 'chips' wants 
>> what a Brit calls crisps; a Brit who wants chips wants what an American 
>> calls french fries. Which meaning of 'chips' is more intuitive? Answer: the 
>> one you grew up with.
>> 
>>> On Sat, Mar 26, 2016 at 1:10 AM, Brent Royal-Gordon via swift-evolution 
>>> <[email protected]> wrote:
>>> > all of these names (public, internal, private, local) have specific 
>>> > meaning in the context of computer languages.
>>> 
>>> Yes, `local` has a meaning, but that meaning is generally *not* that it's 
>>> an access level. It usually has something to do with declaring variables 
>>> inside a function.
>>> 
>>> For instance, Perl uses it to back up and restore a global variable. ML 
>>> uses it to create a scope (roughly). Lua and Julia use it to declare 
>>> lexical variables which are visible in enclosed scopes, which SE-0025's new 
>>> access level is specifically *not* supposed to allow.
>>> 
>>> I don't know of any language where `local` is used as an access level. If 
>>> you're aware of an analogous use in another language, I'd be interested to 
>>> see it. But the examples I've found if anything *undermine* the suggestion 
>>> that `local` would be a good keyword choice.
>>> 
>>> --
>>> Brent Royal-Gordon
>>> Architechies
>>> 
>>> _______________________________________________
>>> swift-evolution mailing list
>>> [email protected]
>>> https://lists.swift.org/mailman/listinfo/swift-evolution
>> 
>> _______________________________________________
>> swift-evolution mailing list
>> [email protected]
>> https://lists.swift.org/mailman/listinfo/swift-evolution
> _______________________________________________
> swift-evolution mailing list
> [email protected]
> https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to