[Review] SE-0053 Remove explicit use of let from Function Parameters

Hello Swift community,

The review of "Remove explicit use of let from Function Parameters" begins now and runs through March 27th. The proposal is available here:

  swift-evolution/0053-remove-let-from-function-parameters.md at master · apple/swift-evolution · GitHub

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.

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 you 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

  swift-evolution/process.md at master · apple/swift-evolution · GitHub

Thank you,

-Chris Lattner
Review Manager

The proposal is unclear to me in what it is, er, proposing. The motivation section speaks about allow `let` to be used as argument label, but the proposed solution says that func foo(let x: Int) { … } would be an error. That seems like it’s contrary to the motivations of the proposal.

-Colin

···

On Mar 24, 2016, at 2:00 PM, Chris Lattner <clattner@apple.com> wrote:

Hello Swift community,

The review of "Remove explicit use of let from Function Parameters" begins now and runs through March 27th. The proposal is available here:

  https://github.com/apple/swift-evolution/blob/master/proposals/0053-remove-let-from-function-parameters.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.

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 you 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,

-Chris Lattner
Review Manager

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

  * What is your evaluation of the proposal?

I'm in favor of the change, but not the proposal or review.

This seems like a mere omission from SE-0003 "Removing var from Function Parameters" <https://github.com/apple/swift-evolution/blob/master/proposals/0003-remove-var-parameters.md&gt;\. I don't think it's a good idea to set a precedent that even facepalmingly obvious mistakes in proposals can only be fixed with a full review cycle.

Rather, I think this proposal should be rejected and, after a simple, informal discussion on the list, SE-0003 should be amended to eliminate the `let` keyword. There is precedent for rejecting a proposal because the proposal shouldn't have been necessary: SE-0013 "Remove Partial Application of Non-Final Super Methods" <https://github.com/apple/swift-evolution/blob/master/proposals/0013-remove-partial-application-super.md&gt; was rejected because the core team decided the evolution process wasn't right for that particular change.

I believe the core team should do that again here, rather than turning the evolution process into a straightjacket preventing it from making simple, straightforward, and obviously correct changes which have already passed review in spirit, if not in letter.

···

--
Brent Royal-Gordon
Architechies

+1 seems obvious to me. I suspect the syntax is rarely used anyway.

Joseph

···

On Mar 24, 2016, at 6:00 PM, Chris Lattner <clattner@apple.com> wrote:

The review of "Remove explicit use of let from Function Parameters" begins now and runs through March 27th. The proposal is available here:

   https://github.com/apple/swift-evolution/blob/master/proposals/0053-remove-let-from-function-parameters.md

        * What is your evaluation of the proposal?

Yes good idea it is spurious

        * Is the problem being addressed significant enough to warrant a
change to Swift?

Marginal

        * Does this proposal fit well with the feel and direction of Swift?

Yes, eliminate things that have no point

        * If you have you used other languages or libraries with a similar
feature, how do you feel that this proposal compares to those?

No

        * How much effort did you put into your review? A glance, a quick
reading, or an in-depth study?

Followed along on swift-evolution

···

--
-- Howard.

* What is your evaluation of the proposal?
+1. Since `let` is the default behaviour, and `var` usage has been deprecated, doesn’t make sense to have a keyword for this.

* Is the problem being addressed significant enough to warrant a change to Swift?
Yes.

* Does this proposal fit well with the feel and direction of Swift?
Yes.

* If you have you used other languages or libraries with a similar feature, how do you feel that this proposal compares to those?
N/A.

* How much effort did you put into your review? A glance, a quick reading, or an in-depth study?
Quick reading of the proposal.

···

On Mar 24, 2016, at 3:00 PM, Chris Lattner via swift-evolution <swift-evolution@swift.org> wrote:

Hello Swift community,

The review of "Remove explicit use of let from Function Parameters" begins now and runs through March 27th. The proposal is available here:

  https://github.com/apple/swift-evolution/blob/master/proposals/0053-remove-let-from-function-parameters.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.

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 you 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,

-Chris Lattner
Review Manager

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

  * What is your evaluation of the proposal?

Given var has been removed and inout has been moved, forcing developers to specify let seems redundant, and hence I support the proposal.

  * Is the problem being addressed significant enough to warrant a change to Swift?

Redundancy is as bad as inconsistency. Hence, the problem is significant enough to warrant a change.

  * Does this proposal fit well with the feel and direction of Swift?

Yes.

  * If you have you used other languages or libraries with a similar feature, how do you feel that this proposal compares to those?

Not really.

  * How much effort did you put into your review? A glance, a quick reading, or an in-depth study?

Quick read.

The proposal is unclear to me in what it is, er, proposing. The motivation section speaks about allow `let` to be used as argument label, but the proposed solution says that func foo(let x: Int) { … } would be an error. That seems like it’s contrary to the motivations of the proposal.

The proposal is simply that "func foo(let x: Int) { … }” be disallowed, since it is redundant with "func foo(x: Int) { … }”. In terms of taking back “let” as a parameter label, this only makes sense in the future, when we give up on migration of the former into the later.

At that point, let could conceivably be used as an external label, as in "foo(let: 42)”. This would make the language simpler and more consistent, since we allow other keywords there.

-Chris

···

On Mar 24, 2016, at 11:09 AM, Colin Barrett via swift-evolution <swift-evolution@swift.org> wrote:

-Colin

On Mar 24, 2016, at 2:00 PM, Chris Lattner <clattner@apple.com> wrote:

Hello Swift community,

The review of "Remove explicit use of let from Function Parameters" begins now and runs through March 27th. The proposal is available here:

  https://github.com/apple/swift-evolution/blob/master/proposals/0053-remove-let-from-function-parameters.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.

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 you 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,

-Chris Lattner
Review Manager

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

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

+1. This seems like a nice and obvious change after the var proposal.

···

On Fri, Mar 25, 2016 at 12:14 PM Juan Ignacio Laube via swift-evolution < swift-evolution@swift.org> wrote:

* What is your evaluation of the proposal?
+1. Since `let` is the default behaviour, and `var` usage has been
deprecated, doesn’t make sense to have a keyword for this.

* Is the problem being addressed significant enough to warrant a change to
Swift?
Yes.

* Does this proposal fit well with the feel and direction of Swift?
Yes.

* If you have you used other languages or libraries with a similar
feature, how do you feel that this proposal compares to those?
N/A.

* How much effort did you put into your review? A glance, a quick reading,
or an in-depth study?
Quick reading of the proposal.

> On Mar 24, 2016, at 3:00 PM, Chris Lattner via swift-evolution < > swift-evolution@swift.org> wrote:
>
> Hello Swift community,
>
> The review of "Remove explicit use of let from Function Parameters"
begins now and runs through March 27th. The proposal is available here:
>
>
https://github.com/apple/swift-evolution/blob/master/proposals/0053-remove-let-from-function-parameters.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.
>
>
> 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 you 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,
>
> -Chris Lattner
> 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

--
Best,

Arthur / Sabintsev.com

Okay, great. That makes sense, thanks for clarifying Chris.

-Colin (via thumbs)

···

On Mar 25, 2016, at 12:35 AM, Chris Lattner <clattner@apple.com> wrote:

On Mar 24, 2016, at 11:09 AM, Colin Barrett via swift-evolution <swift-evolution@swift.org> wrote:

The proposal is unclear to me in what it is, er, proposing. The motivation section speaks about allow `let` to be used as argument label, but the proposed solution says that func foo(let x: Int) { … } would be an error. That seems like it’s contrary to the motivations of the proposal.

The proposal is simply that "func foo(let x: Int) { … }” be disallowed, since it is redundant with "func foo(x: Int) { … }”. In terms of taking back “let” as a parameter label, this only makes sense in the future, when we give up on migration of the former into the later.

At that point, let could conceivably be used as an external label, as in "foo(let: 42)”. This would make the language simpler and more consistent, since we allow other keywords there.

-Chris

-Colin

On Mar 24, 2016, at 2:00 PM, Chris Lattner <clattner@apple.com> wrote:

Hello Swift community,

The review of "Remove explicit use of let from Function Parameters" begins now and runs through March 27th. The proposal is available here:

   https://github.com/apple/swift-evolution/blob/master/proposals/0053-remove-let-from-function-parameters.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.

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 you 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,

-Chris Lattner
Review Manager

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

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