[Review] SE-0069: Mutability and Foundation Value Types

Hello Swift community,

The review of "SE-0069: Mutability and Foundation Value Types" begins now and runs through May 4. The proposal is available here:

  swift-evolution/0069-swift-mutability-for-foundation.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

100% in favor of this proposal. IMO, Foundation should feel as natural to use as the Swift standard library; providing native Swift value types to represent many Foundation objects certainly brings us much closer to accomplishing that goal.

My only concern is that the Swift wrappers should always be just as "powerful" as their underlying Foundation type. That is, the only reason to use NSData over Data, for example, is because you want a reference type; you should never have to use the NS types directly for a certain feature. However, based off the proposal this seems like it will be the case.

So yes, a giant +1 to this.

···

On Apr 25, 2016, at 10:27 AM, Chris Lattner via swift-evolution <swift-evolution@swift.org> wrote:

Hello Swift community,

The review of "SE-0069: Mutability and Foundation Value Types" begins now and runs through May 4. The proposal is available here:

   https://github.com/apple/swift-evolution/blob/master/proposals/0069-swift-mutability-for-foundation.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

Enormous +1. This is a no-brainier IMO. I am really happy to see this being tackled in the Swift 3 timeframe.

···

Sent from my iPad

On Apr 25, 2016, at 12:27 PM, Chris Lattner <clattner@apple.com> wrote:

Hello Swift community,

The review of "SE-0069: Mutability and Foundation Value Types" begins now and runs through May 4. The proposal is available here:

   https://github.com/apple/swift-evolution/blob/master/proposals/0069-swift-mutability-for-foundation.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?

+1 I’ve always been bothered with the idea of Foundation becoming a first-class cross-platform library while breaking the core principles of Swift promoting value types. I’m extremely happen with this proposal.

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

Yes it is. Foundation is the *foundation* which cross-platform Swift libraries will be built for years to come.

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

It is more consistent with the 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?

Not really.

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

A complete read.

···

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

Hello Swift community,

The review of "SE-0069: Mutability and Foundation Value Types" begins now and runs through May 4. The proposal is available here:

  https://github.com/apple/swift-evolution/blob/master/proposals/0069-swift-mutability-for-foundation.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?

+1 This is a great change and I’m really looking forward to it!

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

Yes. Lack of alignment between Swift and Foundation is one of the major pain points in basic day to day development.

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

Yes. It makes Foundation in Swift feel Swifty.

···

On 25 Apr 2016, at 19:27, Chris Lattner via swift-evolution <swift-evolution@swift.org> wrote:

  * 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?

A good read of the proposal.

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?

+1 I concur with David Hart: Foundation becoming the base first-class cross platform library seemed concerning when Foundation was build from a paradigm of “Object Everything”. This fits far better with the Swift philosophy of value types where appropriate.

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

Absolutely. As the basis for Swift Frameworks to come, I think it’s essential we do this right. This represents a clear streamlining of “legacy” Foundation with modern Swift.

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

Yes. This brings Foundation behaviour into line with Swift value-type behaviour.

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

Not personally. Most of my experience informing this decision relates to Objective-C code, and using Objective-C Foundation in Swift.

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

A full read, and following the initial discussion of value types in Swift for the past several months.

···

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

Comments:

- The sentences "These new struct types will be implemented in the Swift overlay. Immutable/mutable pairs (e.g. Data and MutableData) will become one mutable struct type” are a duplicate and may be a copy/paste error.

- I am unsure when a new struct type contains a mutable or immutable boxed object.

- Is there a goal to eventually replace/remove the NS* versions completely within corelibs-foundation?

-DW

···

On Apr 25, 2016, at 4:21 PM, Matthew Johnson via swift-evolution <swift-evolution@swift.org> wrote:

Enormous +1. This is a no-brainier IMO. I am really happy to see this being tackled in the Swift 3 timeframe.

Sent from my iPad

On Apr 25, 2016, at 12:27 PM, Chris Lattner <clattner@apple.com <mailto:clattner@apple.com>> wrote:

Hello Swift community,

The review of "SE-0069: Mutability and Foundation Value Types" begins now and runs through May 4. The proposal is available here:

  https://github.com/apple/swift-evolution/blob/master/proposals/0069-swift-mutability-for-foundation.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 <mailto:swift-evolution-announce@swift.org>
https://lists.swift.org/mailman/listinfo/swift-evolution-announce

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

Enormous +1. This is a no-brainier IMO. I am really happy to see
this being tackled in the Swift 3 timeframe.

Perhaps this goes without saying, but it actually is a “brainer.” There
are lots of ways to do this wrong, and the Foundation team has done a
wonderful job of taking on the challenges and working out the details.

···

on Mon Apr 25 2016, Matthew Johnson <swift-evolution@swift.org> wrote:

Sent from my iPad

On Apr 25, 2016, at 12:27 PM, Chris Lattner <clattner@apple.com> wrote:

Hello Swift community,

The review of "SE-0069: Mutability and Foundation Value Types" begins now and runs through May 4. The proposal is available here:

   https://github.com/apple/swift-evolution/blob/master/proposals/0069-swift-mutability-for-foundation.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

--
Dave

I haven't tried to directly replace them yet but I would imagine that in order to replicate behavior some of the reference types will still be needed. That being said, other classes may no longer have any real value (not fully intended to be a pun) since types like NSDate are just simple wrappers around a simple value type. There will be a few parts: like coding or property lists that will still need to internally require a reference type to manipulate in CF code.

The boxing types will be simpler than the overlay for Objective-C since the corelibs version are all Swift classes at their base.

In short I think it would be best to just add and not remove things for now from swift-corelibs-foundation when modifications are made to bring these in sync.

···

Sent from my iPhone

On Apr 25, 2016, at 8:35 PM, David Waite via swift-evolution <swift-evolution@swift.org> wrote:

Comments:

- The sentences "These new struct types will be implemented in the Swift overlay. Immutable/mutable pairs (e.g. Data and MutableData) will become one mutable struct type” are a duplicate and may be a copy/paste error.

- I am unsure when a new struct type contains a mutable or immutable boxed object.

- Is there a goal to eventually replace/remove the NS* versions completely within corelibs-foundation?

-DW

On Apr 25, 2016, at 4:21 PM, Matthew Johnson via swift-evolution <swift-evolution@swift.org> wrote:

Enormous +1. This is a no-brainier IMO. I am really happy to see this being tackled in the Swift 3 timeframe.

Sent from my iPad

On Apr 25, 2016, at 12:27 PM, Chris Lattner <clattner@apple.com> wrote:

Hello Swift community,

The review of "SE-0069: Mutability and Foundation Value Types" begins now and runs through May 4. The proposal is available here:

  https://github.com/apple/swift-evolution/blob/master/proposals/0069-swift-mutability-for-foundation.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

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