[swift-evolution] [Review] SE-0018 Flexible Memberwise Initialization

Patrick Gili gili.patrick.r at gili-labs.com
Sat Jan 9 08:01:49 CST 2016

> On Jan 6, 2016, at 5:47 PM, Chris Lattner via swift-evolution <swift-evolution at swift.org> wrote:
> Hello Swift community,
> The review of "Flexible Memberwise Initialization" begins now and runs through January 10th. The proposal is available here:
> 	https://github.com/apple/swift-evolution/blob/master/proposals/0018-flexible-memberwise-initialization.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?

Overall, I think the proposal has merit. However, I have some concerns around two areas:

1) It adds complexity to initializers, which already have a fair amount of complexity around them.

2) I don't see anything in the proposal that indicates how a developer can see what the compiler synthesizes. As mentioned above, initializers are already complex, and having this capability would greatly help in troubleshooting problems when designing types.

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

I'm ambivalent about this. I had genuinely good feelings about Swift from the time Apple introduced it at WWDC '14. It provided software developers with many conveniences and removed a lot of complexity from its predecessor, Objective C. Sometimes flexibility adds complexity, and on some level I feel like this proposal adds some flexibility. While the proposal definitely solves a problem, it comes at a cost. Thus, we have to ask ourselves if the benefit outweighs the cost. At first glance, I think it does.

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

I have not used any programming languages that synthesize sophisticated initializers. Most languages provide generate an automatic initializer that does nothing, which often leads to more problems than it is worth.

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

I thorough read the proposal three times, compared it to other languages that use on a regular basis, and gave it some serious thought.

> More information about the Swift evolution process is available at
> 	https://github.com/apple/swift-evolution/blob/master/process.md
> Thank you,
> -Chris
> Review Manager
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution

More information about the swift-evolution mailing list