"public", "protected", and "private" have a very well defined meaning in OOP. We shouldn't redefine them without a good reason.
Swift allows extensions, so "private" in its standard form doesn't work well -- you could just define an extension and get access to anything. The scope based private seems to be the most natural extension (pun intended :–)). On Sat, Mar 26, 2016 at 3:14 AM Cheyo Ximenez <[email protected]> wrote: > I agree with Ross. Swift already redefined the common access modifiers > meanings. > Why not use the word 'protected' to mean 'local'? > > public > internal > private > protected // Java got it wrong. :) This is "protected" against extensions. > > > On Mar 25, 2016, at 6: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
