[Review] SE-0159: Fix Private Access Levels


(Vinnie Hesener) #1

This discussion escalated real quickly. There are some very bright minds in
the mud right now, but I think there may still be a way to salvage this
discussion.

Chris talked about there being two layers to Swift... the easy mode for
adoption and outreach, then the advanced mode for taking over the world.
This requires a delicate balance of features vs usability (e.g. MS Paint vs
Photoshop). There are various ways to approach that balance, but they
almost always require creativity and cooperation from the smartest guys in
the room.

I'm not one of those guys, but let me throw out some food for thought. Is
there a way to not only please both generalized arguments, but also solve
the root of the problem? For instance, has anyone thought about why we even
call things public, private, etc? Other than their initial meaning, the
answer may be "other languages do it" or even better "that is what prevents
confusion and dupe questions on stackoverflow". Fair enough.

I realize this would be jolting for most, but would anyone be asking the
stackoverflow ether what a **scope** var was? How about a **file** func?
How about a SO title: "What does **module** let myVar refer to?"

Don't we have the opportunity to offer, within reason, a large set of
accessors that are self explanatory? I think it may solve the complexity
for usefulness exchange because they are simply there for the advanced
users that want to use them. There's no choosing for newbs because the
choice is in the name, assuming we name them pristinely (I have faith!).

I'm also a little cooky too, but maybe this can spark some creativity in a
more wholistic solution for both sides.

Hello Swift community,

The review of SE-0159 "Fix Private Access Levels" begins now and runs

through March 27, 2017. The proposal is available here:

https://github.com/apple/swift-evolution/blob/master/proposals/0159-fix-private-access-levels.md

Reviews are an important part of the Swift evolution process. All reviews

should be sent to the swift-evolution mailing list at

https://lists.swift.org/mailman/listinfo/swift-evolution<

https://lists.swift.org/mailman/listinfo/swift-evolution>

or, if you would like to keep your feedback private, directly to the

review manager. When replying, please try to keep the proposal link at the
top of the message:

Proposal link:

https://github.com/apple/swift-evolution/blob/master/proposals/0159-fix-private-access-levels.md

Reply text
Other replies
<

https://github.com/apple/swift-evolution/blob/master/process.md#what-goes-into-a-review-1>What
goes into a review?

The goal of the review process is to improve the proposal under review

through constructive criticism and, eventually, determine the direction of
Swift. When writing your review, here are some questions you might want to
answer in your review:

What is your evaluation of the proposal?
Is the problem being addressed significant enough to warrant a change to

Swift?

Does this proposal fit well with the feel and direction of Swift?
If you have used other languages or libraries with a similar feature, how

do you feel that this proposal compares to those?

How much effort did you put into your review? A glance, a quick reading,

or an in-depth study?

More information about the Swift evolution process is available at

https://github.com/apple/swift-evolution/blob/master/process.md<

https://github.com/apple/swift-evolution/blob/master/process.md>

···

Thank you,

-Doug

Review Manager


(Xiaodi Wu) #2

`scoped` was the name originally proposed in SE-0025, changed by the core
team on acceptance to `private`, and `file` was one of the suggestions for
what used to be called `private`; I remember because I suggested it too; it
was renamed to `fileprivate` after consideration of this alternative.

···

On Fri, Mar 24, 2017 at 5:27 AM, Vinnie Hesener via swift-evolution < swift-evolution@swift.org> wrote:

This discussion escalated real quickly. There are some very bright minds
in the mud right now, but I think there may still be a way to salvage this
discussion.

Chris talked about there being two layers to Swift... the easy mode for
adoption and outreach, then the advanced mode for taking over the world.
This requires a delicate balance of features vs usability (e.g. MS Paint vs
Photoshop). There are various ways to approach that balance, but they
almost always require creativity and cooperation from the smartest guys in
the room.

I'm not one of those guys, but let me throw out some food for thought. Is
there a way to not only please both generalized arguments, but also solve
the root of the problem? For instance, has anyone thought about why we even
call things public, private, etc? Other than their initial meaning, the
answer may be "other languages do it" or even better "that is what prevents
confusion and dupe questions on stackoverflow". Fair enough.

I realize this would be jolting for most, but would anyone be asking the
stackoverflow ether what a **scope** var was? How about a **file** func?
How about a SO title: "What does **module** let myVar refer to?"

Don't we have the opportunity to offer, within reason, a large set of
accessors that are self explanatory? I think it may solve the complexity
for usefulness exchange because they are simply there for the advanced
users that want to use them. There's no choosing for newbs because the
choice is in the name, assuming we name them pristinely (I have faith!).

I'm also a little cooky too, but maybe this can spark some creativity in a
more wholistic solution for both sides.

> Hello Swift community,
>
> The review of SE-0159 "Fix Private Access Levels" begins now and runs
through March 27, 2017. The proposal is available here:
>
> https://github.com/apple/swift-evolution/blob/master/
proposals/0159-fix-private-access-levels.md
> Reviews are an important part of the Swift evolution process. All
reviews should be sent to the swift-evolution mailing list at
>
> https://lists.swift.org/mailman/listinfo/swift-evolution<
https://lists.swift.org/mailman/listinfo/swift-evolution>
> or, if you would like to keep your feedback private, directly to the
review manager. When replying, please try to keep the proposal link at the
top of the message:
>
> Proposal link:
>
> https://github.com/apple/swift-evolution/blob/master/
proposals/0159-fix-private-access-levels.md
> Reply text
> Other replies
> <https://github.com/apple/swift-evolution/blob/master/
process.md#what-goes-into-a-review-1>What goes into a review?
>
> The goal of the review process is to improve the proposal under review
through constructive criticism and, eventually, determine the direction of
Swift. When writing your review, here are some questions you might want to
answer in your review:
>
> What is your evaluation of the proposal?
> Is the problem being addressed significant enough to warrant a change to
Swift?
> Does this proposal fit well with the feel and direction of Swift?
> If you have used other languages or libraries with a similar feature,
how do you feel that this proposal compares to those?
> How much effort did you put into your review? A glance, a quick reading,
or an in-depth study?
> More information about the Swift evolution process is available at
>
> https://github.com/apple/swift-evolution/blob/master/process.md<
https://github.com/apple/swift-evolution/blob/master/process.md>
> Thank you,
>
> -Doug
>
> Review Manager
>
>
>

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution


(Matthew Johnson) #3

`scoped` was the name originally proposed in SE-0025, changed by the core team on acceptance to `private`, and `file` was one of the suggestions for what used to be called `private`; I remember because I suggested it too; it was renamed to `fileprivate` after consideration of this alternative.

I believe the original proposal actually used `local` which I thought was not a good name. `scoped` didn't receive significant discussion (any that I recall) until after Swift 3 was already released.

···

Sent from my iPad

On Mar 24, 2017, at 6:11 AM, Xiaodi Wu via swift-evolution <swift-evolution@swift.org> wrote:

On Fri, Mar 24, 2017 at 5:27 AM, Vinnie Hesener via swift-evolution <swift-evolution@swift.org> wrote:
This discussion escalated real quickly. There are some very bright minds in the mud right now, but I think there may still be a way to salvage this discussion.

Chris talked about there being two layers to Swift... the easy mode for adoption and outreach, then the advanced mode for taking over the world. This requires a delicate balance of features vs usability (e.g. MS Paint vs Photoshop). There are various ways to approach that balance, but they almost always require creativity and cooperation from the smartest guys in the room.

I'm not one of those guys, but let me throw out some food for thought. Is there a way to not only please both generalized arguments, but also solve the root of the problem? For instance, has anyone thought about why we even call things public, private, etc? Other than their initial meaning, the answer may be "other languages do it" or even better "that is what prevents confusion and dupe questions on stackoverflow". Fair enough.

I realize this would be jolting for most, but would anyone be asking the stackoverflow ether what a **scope** var was? How about a **file** func? How about a SO title: "What does **module** let myVar refer to?"

Don't we have the opportunity to offer, within reason, a large set of accessors that are self explanatory? I think it may solve the complexity for usefulness exchange because they are simply there for the advanced users that want to use them. There's no choosing for newbs because the choice is in the name, assuming we name them pristinely (I have faith!).

I'm also a little cooky too, but maybe this can spark some creativity in a more wholistic solution for both sides.

> Hello Swift community,
>
> The review of SE-0159 "Fix Private Access Levels" begins now and runs through March 27, 2017. The proposal is available here:
>
> https://github.com/apple/swift-evolution/blob/master/proposals/0159-fix-private-access-levels.md
> Reviews are an important part of the Swift evolution process. All reviews should be sent to the swift-evolution mailing list at
>
> https://lists.swift.org/mailman/listinfo/swift-evolution
> or, if you would like to keep your feedback private, directly to the review manager. When replying, please try to keep the proposal link at the top of the message:
>
> Proposal link:
>
> https://github.com/apple/swift-evolution/blob/master/proposals/0159-fix-private-access-levels.md
> Reply text
> Other replies
> <https://github.com/apple/swift-evolution/blob/master/process.md#what-goes-into-a-review-1>What goes into a review?
>
> The goal of the review process is to improve the proposal under review through constructive criticism and, eventually, determine the direction of Swift. When writing your review, here are some questions you might want to answer in your review:
>
> What is your evaluation of the proposal?
> Is the problem being addressed significant enough to warrant a change to Swift?
> Does this proposal fit well with the feel and direction of Swift?
> If you have used other languages or libraries with a similar feature, how do you feel that this proposal compares to those?
> How much effort did you put into your review? A glance, a quick reading, or an in-depth study?
> More information about the Swift evolution process is available at
>
> https://github.com/apple/swift-evolution/blob/master/process.md
> Thank you,
>
> -Doug
>
> Review Manager
>
>
>

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution