[swift-evolution] Make class and struct members private by default / Type-Based access
Ted F.A. van Gaalen
tedvgiosdev at gmail.com
Thu Apr 6 06:25:13 CDT 2017
jikes! You’re right, total blunder. I should do my homework better :o)
I have been using Java before, be it with the assumption that it had private scope
for class members, because of the line of PLs I was using before I started using Java
I went on programming assuming that it had, which never led to scope conflicts because
of programming consequently within this assumption, so, I never noticed this. :o)
This is because in most PLs in my history Fortran -> Cobol-> PL/1 -> Pascal -> Modula ->
C -> C++ consistent lexical scope is present (since ca. 1960 with Algol)
After that C# (nice language too, which has it) and ObjC (which hasn’t) and Smalltalk for many years
which has (needs) no scope modifiers at all (in a class all methods are not private
but variables are.)
Sorry for the incorrect assumptions.
Nevertheless I hold on to my point of view that there should be lexical scope only in Swift,
(as Swift being a procedural/OOP language)
however rigidly enforcing this in Swift 4 would be probably too much of a change now.
I do not understand what is so hard on private-by-default? (that is, if used
this way right from the beginning of writing an application,
(provided a program language is set up that way)
> On 4. Apr 2017, at 22:17, David Waite <david at alkaline-solutions.com> wrote:
>> On Apr 4, 2017, at 7:07 AM, Ted F.A. van Gaalen via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>> Hi Xiaodi,
>> that currently all members of a class or struct are exposed by default by having
>> a default scope of ‘internal’ and are therefore accessible in the entire module
>> is imho very bad unstructured programming practice.
>> In no other OOP language it is implemented
>> that way..
> I think you may be forgetting Java (and Ruby, and Python, and Go, and Objective-C, and…)
> In my experience , the hard-private-by-default comes from C++ and heavily influenced languages like C# and Rust.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the swift-evolution