<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Jan 6, 2016, at 6:39 PM, Félix Cloutier via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Meta: most reviews have the review dates in the Status field of their document, this one doesn't. I was a little confused&nbsp;at first.<br class=""><br class="">For the proposal itself:<br class=""><br class=""># What is your evaluation of the proposal?<div class=""><br class=""></div><div class="">+1</div><div class=""><br class="">#&nbsp;Is the problem being addressed significant enough to warrant a change to Swift?</div><div class=""><br class=""></div><div class="">Yes, I write a lot of code just to initialize code. This will probably make some of that code clearer.</div><div class=""><br class="">#&nbsp;Does this proposal fit well with the feel and direction of Swift?</div><div class=""><br class=""></div><div class="">Probably?</div><div class=""><br class=""></div><div class=""># If you have you used other languages or libraries with a similar feature, how do you feel that this&nbsp;proposal&nbsp;compares to those?</div><div class=""><br class=""></div><div class="">I frequently write C++ and Python and neither of them have it. This is especially annoying for short programs.</div><div class=""><br class=""></div><div class=""># C# has an initializer syntax that allows you to assign properties at creation time, and it is handy:</div><div class=""><br class=""></div><div class=""><div class=""></div><blockquote type="cite" class=""><div class="">Foo foo = new Foo() {</div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>Bar = "bar",</div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>Baz = 1,</div><div class="">};</div></blockquote><br class=""></div><div class="">However, this pattern wouldn't be of much help in Swift, where most types don't have a reasonable default value.</div><div class=""><br class="">#&nbsp;How much effort did you put into your review? A glance, a quick reading, or an in-depth study?</div><div class=""><br class=""></div><div class="">I followed the first week and a half of the proposal.</div><div class=""><br class=""></div><div class="">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.<br class=""></div></div></div></blockquote><div><br class=""></div><div>Felix, I apologize if this was confusing. &nbsp;The decision of the “automatic” vs “opt-in” model for property eligibility is one that I feel is very important. &nbsp;That is why I mentioned the tradeoff in the Proposed Solution section. &nbsp;</div><div><br class=""></div><div>The opt-in model is not part of the current proposal. &nbsp;The Detailed Design describes exactly how the current proposal will work. &nbsp;I appreciate your support of that!</div><div><br class=""></div><div>The future enhancements are included to give an idea of some directions in which memberwise initialization could evolve. &nbsp;I feel strongly about two aspects of these enhancements:</div><div><br class=""></div><div>1. We need a way to specify a default value for memberwise parameters for `let` properties.</div><div>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.</div><div><br class=""></div>Matthew</div><div><br class=""><blockquote type="cite" class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><div class=""><br class="">Félix<br class=""></div><br class=""><blockquote type="cite" class="">Le 6 janv. 2016 à 19:04:41, Dave Abrahams via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; a écrit :<br class=""><br class=""><blockquote type="cite" style="font-family: Menlo-Regular; font-size: 10px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br class="">On Jan 6, 2016, at 2:47 PM, Chris Lattner via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:<br class=""><br class="">Hello Swift community,<br class=""><br class="">The review of "Flexible Memberwise Initialization" begins now and runs through January 10th. The proposal is&nbsp;available here:<br class=""><br class=""><span class="Apple-tab-span" style="white-space:pre">        </span><a href="https://github.com/apple/swift-evolution/blob/master/proposals/0018-flexible-memberwise-" class="">https://github.com/apple/swift-evolution/blob/master/proposals/0018-flexible-memberwise-</a>initialization.md<span class="Apple-tab-span" style="white-space:pre">        </span><br class=""><br class="">Reviews are an important part of the Swift evolution process. All reviews should be sent to the swift-evolution&nbsp;mailing list at<br class=""><br class=""><span class="Apple-tab-span" style="white-space:pre">        </span><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class=""><br class="">or, if you would like to keep your feedback private, directly to the review manager.<br class=""><br class="">What goes into a review?<br class=""><br class="">The goal of the review process is to improve the proposal under review through constructive criticism and,&nbsp;eventually, determine the direction of Swift. When writing your review, here are some questions you might want&nbsp;to answer in your review:<br class=""><br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>* What is your evaluation of the proposal?<br class=""></blockquote><br class="">It’s okay.<br class=""><br class=""><blockquote type="cite" style="font-family: Menlo-Regular; font-size: 10px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span class="Apple-tab-span" style="white-space:pre">        </span>* Is the problem being addressed significant enough to warrant a change to Swift?<br class=""></blockquote><br class="">I’m lukewarm about that. &nbsp;I have never found writing out the initializers I want to be a significant burden, and&nbsp;I find my code is better when they’re explicit. &nbsp;Every new feature increases the language's complexity and&nbsp;surface area, and I fear this one is not going to pay its way.<br class=""><br class=""><blockquote type="cite" style="font-family: Menlo-Regular; font-size: 10px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span class="Apple-tab-span" style="white-space:pre">        </span>* Does this proposal fit well with the feel and direction of Swift?<br class=""></blockquote><br class="">Yes, but I worry that it may be too early to add it. &nbsp;Other features in this space, like truly generic variadics,&nbsp;may well obsolete anything we do today. &nbsp;I’m not sure we should be designing convenience features that are likely&nbsp;to overlap with more general features coming down the road unless the inconvenience is very painful… which I&nbsp;personally don’t find it to be.<br class=""><br class=""><blockquote type="cite" style="font-family: Menlo-Regular; font-size: 10px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span class="Apple-tab-span" style="white-space:pre">        </span>* If you have you used other languages or libraries with a similar feature, how do you feel that this&nbsp;proposal compares to those?<br class=""></blockquote><br class="">The proposal is more elegant than how you’d do this in Python, but on the other hand the mechanisms you’d use in&nbsp;Python are not single-purpose language features directed at memberwise initialization; they definitely pay their&nbsp;way because they can be used for much more.<br class=""><br class=""><blockquote type="cite" style="font-family: Menlo-Regular; font-size: 10px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span class="Apple-tab-span" style="white-space:pre">        </span>* How much effort did you put into your review? A glance, a quick reading, or an in-depth study?<br class=""></blockquote><br class="">A glance, admittedly.<br class=""><br class=""><blockquote type="cite" style="font-family: Menlo-Regular; font-size: 10px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">More information about the Swift evolution process is available at<br class=""><br class=""><span class="Apple-tab-span" style="white-space:pre">        </span><a href="https://github.com/apple/swift-evolution/blob/master/process.md" class="">https://github.com/apple/swift-evolution/blob/master/process.md</a><br class=""><br class="">Thank you,<br class=""><br class="">-Chris<br class="">Review Manager<br class="">_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class="">https://lists.swift.org/mailman/listinfo/swift-evolution<br class=""></blockquote><br class="">-Dave<br class=""><br class=""><br class=""><br class="">_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class=""></blockquote><br class=""></div>
<img src="https://u2002410.ct.sendgrid.net/wf/open?upn=eLFMrKDT8iBxZ-2Fbnk-2BZqvSchNN-2FvYXdceA0T7VxwkAcuN2pgk7PwapmGd60GW2ZAO1eIUKugv5E9oIDCxyRY6RlhF-2F3S2sy4mxKMnpHR-2FaS1gtr-2FnV8WzgUYslYK5DG5NiGFE1CLMbRwj4UupRD-2BW2-2BYxL-2FETZ5y0QkVkaAbAjJNkwciFhizdfSPPaLAFy5XKNCxrnkfW536kiuKeusIDmAZUnH5LeCwa0P1GF0wP-2F4-3D" alt="" width="1" height="1" border="0" style="height:1px !important;width:1px !important;border-width:0 !important;margin-top:0 !important;margin-bottom:0 !important;margin-right:0 !important;margin-left:0 !important;padding-top:0 !important;padding-bottom:0 !important;padding-right:0 !important;padding-left:0 !important;" class="">
</div>
_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class="">https://lists.swift.org/mailman/listinfo/swift-evolution<br class=""></div></blockquote></div><br class=""></body></html>