> On Jan 6, 2016, at 6:39 PM, Félix Cloutier via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
> Meta: most reviews have the review dates in the Status field of their 
> document, this one doesn't. I was a little confused at first.
> 
> For the proposal itself:
> 
> # What is your evaluation of the proposal?
> 
> +1
> 
> # Is the problem being addressed significant enough to warrant a change to 
> Swift?
> 
> Yes, I write a lot of code just to initialize code. This will probably make 
> some of that code clearer.
> 
> # Does this proposal fit well with the feel and direction of Swift?
> 
> Probably?
> 
> # If you have you used other languages or libraries with a similar feature, 
> how do you feel that this proposal compares to those?
> 
> I frequently write C++ and Python and neither of them have it. This is 
> especially annoying for short programs.
> 
> # C# has an initializer syntax that allows you to assign properties at 
> creation time, and it is handy:
> 
>> Foo foo = new Foo() {
>>      Bar = "bar",
>>      Baz = 1,
>> };
> 
> However, this pattern wouldn't be of much help in Swift, where most types 
> don't have a reasonable default value.
> 
> # How much effort did you put into your review? A glance, a quick reading, or 
> an in-depth study?
> 
> I followed the first week and a half of the proposal.
> 
> With all this said, I am confused with the way the proposal is written. The 
> Proposed Solution section talks about opt-in memberwise initialization with 
> the memberwise modifier on properties, but it is listed as a future direction 
> and the Detailed Design makes no mention of it. I would like to be clear that 
> my current appreciation of the proposal only extends to the Detailed Design, 
> and not necessarily to the future directions.

Felix, I apologize if this was confusing.  The decision of the “automatic” vs 
“opt-in” model for property eligibility is one that I feel is very important.  
That is why I mentioned the tradeoff in the Proposed Solution section.  

The opt-in model is not part of the current proposal.  The Detailed Design 
describes exactly how the current proposal will work.  I appreciate your 
support of that!

The future enhancements are included to give an idea of some directions in 
which memberwise initialization could evolve.  I feel strongly about two 
aspects of these enhancements:

1. We need a way to specify a default value for memberwise parameters for `let` 
properties.
2. It would be really nice to have a little bit more control over which 
properties participate in memberwise initialization when the “automatic” rules 
don’t quite do the right thing for a particular use case.

Matthew

> 
> Félix
> 
>> Le 6 janv. 2016 à 19:04:41, Dave Abrahams via swift-evolution 
>> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> a écrit :
>> 
>>> 
>>> On Jan 6, 2016, at 2:47 PM, Chris Lattner via swift-evolution 
>>> <swift-evolution@swift.org <mailto:swift-evolution@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-
>>>  
>>> <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?
>> 
>> It’s okay.
>> 
>>>     * Is the problem being addressed significant enough to warrant a change 
>>> to Swift?
>> 
>> I’m lukewarm about that.  I have never found writing out the initializers I 
>> want to be a significant burden, and I find my code is better when they’re 
>> explicit.  Every new feature increases the language's complexity and surface 
>> area, and I fear this one is not going to pay its way.
>> 
>>>     * Does this proposal fit well with the feel and direction of Swift?
>> 
>> Yes, but I worry that it may be too early to add it.  Other features in this 
>> space, like truly generic variadics, may well obsolete anything we do today. 
>>  I’m not sure we should be designing convenience features that are likely to 
>> overlap with more general features coming down the road unless the 
>> inconvenience is very painful… which I personally don’t find it to be.
>> 
>>>     * If you have you used other languages or libraries with a similar 
>>> feature, how do you feel that this proposal compares to those?
>> 
>> The proposal is more elegant than how you’d do this in Python, but on the 
>> other hand the mechanisms you’d use in Python are not single-purpose 
>> language features directed at memberwise initialization; they definitely pay 
>> their way because they can be used for much more.
>> 
>>>     * How much effort did you put into your review? A glance, a quick 
>>> reading, or an in-depth study?
>> 
>> A glance, admittedly.
>> 
>>> 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,
>>> 
>>> -Chris
>>> Review Manager
>>> _______________________________________________
>>> swift-evolution mailing list
>>> swift-evolution@swift.org
>>> https://lists.swift.org/mailman/listinfo/swift-evolution
>> 
>> -Dave
>> 
>> 
>> 
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution@swift.org <mailto: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

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

Reply via email to