<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 Jun 9, 2016, at 1:04 PM, Christopher Kornher &lt;<a href="mailto:ckornher@me.com" class="">ckornher@me.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">While I preferred a different solution, here, I think that the current “do not design by committee” process is a good one, and the accepted solution is definite improvement. A consistent vision is critical to a project as complex as this. It is certainly in Apple’s DNA, and has served it, and the world, well.</div></div></div></blockquote><div><br class=""></div><div>I agree mostly…consistency is nice but a little character is also nice too:</div><div><br class=""></div><div>new:&nbsp;</div><div>if let x = x, x &gt; 5 {</div><div><br class=""></div><div>}</div><div><br class=""></div><div>old:</div><div>if let x = x where &nbsp;x &gt; 5 {</div><div><br class=""></div><div>}</div><div><br class=""></div><div>To me the old way has more character and expressivity than the new way. This is where I think being 100% consistent can lead to a stale language void of character if taken too far.</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=""><br class=""></div><div class="">This proposal is one step in achieving overarching goal: "to preserve higher-level consistency throughout the language in how components of expressions and statements are separated”&nbsp;</div></div></div></blockquote><div><br class=""></div><div>This is the one argument to end it all in my opinion. However, with the removal of where from conditionals, we are still *not* consistent:</div><div>- where in case conditions</div><div>- where in for loops</div><div>- where in while loops</div><div>- where used in constraints&nbsp;</div><div><br class=""></div><div>Will we now move from:</div><div><ol class="code-lines" style="border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; counter-reset: li 0; line-height: 1.6em; list-style: none; font-family: Helvetica, Arial, sans-serif;"><li style="border-width: 0px 0px 0px 18px; border-left-style: solid; border-left-color: transparent; margin: 0px; outline: 0px; padding: 0px 10px 0px 0px; vertical-align: baseline; text-indent: -13px; white-space: pre-wrap; list-style-type: none;" class=""><code class="code-voice" style="border: 0px; font-size: 0.85em; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; font-family: Menlo, monospace; word-wrap: break-word;"><span class="kt" style="border: 0px; font-size: 11.899999618530273px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(170, 51, 145);">func</span> <span class="vc" style="border: 0px; font-size: 11.899999618530273px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(63, 110, 116);">allItemsMatch</span>&lt;</code><span class="vc" style="font-family: Menlo, monospace; font-size: 11.899999618530273px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(63, 110, 116);">C1</span><span style="font-family: Menlo, monospace; font-size: 0.85em;" class="">: </span><span class="n" style="font-family: Menlo, monospace; font-size: 11.899999618530273px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);">Container</span><span style="font-family: Menlo, monospace; font-size: 0.85em;" class="">, </span><span class="vc" style="font-family: Menlo, monospace; font-size: 11.899999618530273px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(63, 110, 116);">C2</span><span style="font-family: Menlo, monospace; font-size: 0.85em;" class="">: </span><span class="n" style="font-family: Menlo, monospace; font-size: 11.899999618530273px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);">Container </span><span class="kt" style="font-family: Menlo, monospace; font-size: 11.899999618530273px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(170, 51, 145);">where</span><span style="font-family: Menlo, monospace; font-size: 0.85em;" class=""> </span><span class="n" style="font-family: Menlo, monospace; font-size: 11.899999618530273px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);">C1</span><span style="font-family: Menlo, monospace; font-size: 0.85em;" class="">.</span><span class="n" style="font-family: Menlo, monospace; font-size: 11.899999618530273px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);">ItemType</span><span style="font-family: Menlo, monospace; font-size: 0.85em;" class=""> == </span><span class="n" style="font-family: Menlo, monospace; font-size: 11.899999618530273px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);">C2</span><span style="font-family: Menlo, monospace; font-size: 0.85em;" class="">.</span><span class="n" style="font-family: Menlo, monospace; font-size: 11.899999618530273px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);">ItemType</span><span style="font-family: Menlo, monospace; font-size: 0.85em;" class="">, </span><span class="n" style="font-family: Menlo, monospace; font-size: 11.899999618530273px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);">C1</span><span style="font-family: Menlo, monospace; font-size: 0.85em;" class="">.</span><span class="n" style="font-family: Menlo, monospace; font-size: 11.899999618530273px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);">ItemType</span><span style="font-family: Menlo, monospace; font-size: 0.85em;" class="">: </span><span class="n" style="font-family: Menlo, monospace; font-size: 11.899999618530273px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);">Equatable</span><span style="font-family: Menlo, monospace; font-size: 0.85em;" class="">&gt;</span></li><li style="border-width: 0px 0px 0px 18px; border-left-style: solid; border-left-color: transparent; margin: 0px; outline: 0px; padding: 0px 10px 0px 0px; vertical-align: baseline; text-indent: -13px; white-space: pre-wrap; list-style-type: none;" class=""><code class="code-voice" style="border: 0px; font-size: 0.85em; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; font-family: Menlo, monospace; word-wrap: break-word;">    (<span class="vc" style="border: 0px; font-size: 11.899999618530273px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(63, 110, 116);">someContainer</span>: <span class="n" style="border: 0px; font-size: 11.899999618530273px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);">C1</span>, <span class="kt" style="border: 0px; font-size: 11.899999618530273px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(170, 51, 145);">_</span> <span class="vc" style="border: 0px; font-size: 11.899999618530273px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(63, 110, 116);">anotherContainer</span>: <span class="n" style="border: 0px; font-size: 11.899999618530273px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);">C2</span>) -&gt; <span class="n" style="border: 0px; font-size: 11.899999618530273px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);">Bool</span></code></li><li style="border-width: 0px 0px 0px 18px; border-left-style: solid; border-left-color: transparent; margin: 0px; outline: 0px; padding: 0px 10px 0px 0px; vertical-align: baseline; text-indent: -13px; white-space: pre-wrap; list-style-type: none;" class=""><code class="code-voice" style="border: 0px; font-size: 0.85em; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; font-family: Menlo, monospace; word-wrap: break-word;"><span class="n" style="border: 0px; font-size: 11.899999618530273px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);"><br class=""></span></code></li></ol><div style="text-indent: -13px;" class=""><div style="text-indent: 0px;">To:</div><div style="text-indent: 0px;"><ol class="code-lines" style="border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; counter-reset: li 0; line-height: 1.6em; list-style: none; font-family: Helvetica, Arial, sans-serif;"><li style="border-width: 0px 0px 0px 18px; border-left-style: solid; border-left-color: transparent; margin: 0px; outline: 0px; padding: 0px 10px 0px 0px; vertical-align: baseline; text-indent: -13px; white-space: pre-wrap; list-style-type: none;" class=""><code class="code-voice" style="border: 0px; font-size: 0.85em; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; font-family: Menlo, monospace; word-wrap: break-word;"><span class="kt" style="border: 0px; font-size: 11.899999618530273px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(170, 51, 145);">func</span> <span class="vc" style="border: 0px; font-size: 11.899999618530273px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(63, 110, 116);">allItemsMatch</span>&lt;</code><span class="vc" style="font-family: Menlo, monospace; font-size: 11.899999618530273px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(63, 110, 116);">C1</span><span style="font-family: Menlo, monospace; font-size: 0.85em;" class="">: </span><span class="n" style="font-family: Menlo, monospace; font-size: 11.899999618530273px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);">Container</span><span style="font-family: Menlo, monospace; font-size: 0.85em;" class="">, </span><span class="vc" style="font-family: Menlo, monospace; font-size: 11.899999618530273px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(63, 110, 116);">C2</span><span style="font-family: Menlo, monospace; font-size: 0.85em;" class="">: </span><span class="n" style="font-family: Menlo, monospace; font-size: 11.899999618530273px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);">Container,</span><span style="font-family: Menlo, monospace; font-size: 0.85em;" class=""> </span><span class="n" style="font-family: Menlo, monospace; font-size: 11.899999618530273px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);">C1</span><span style="font-family: Menlo, monospace; font-size: 0.85em;" class="">.</span><span class="n" style="font-family: Menlo, monospace; font-size: 11.899999618530273px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);">ItemType</span><span style="font-family: Menlo, monospace; font-size: 0.85em;" class=""> == </span><span class="n" style="font-family: Menlo, monospace; font-size: 11.899999618530273px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);">C2</span><span style="font-family: Menlo, monospace; font-size: 0.85em;" class="">.</span><span class="n" style="font-family: Menlo, monospace; font-size: 11.899999618530273px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);">ItemType</span><span style="font-family: Menlo, monospace; font-size: 0.85em;" class="">, </span><span class="n" style="font-family: Menlo, monospace; font-size: 11.899999618530273px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);">C1</span><span style="font-family: Menlo, monospace; font-size: 0.85em;" class="">.</span><span class="n" style="font-family: Menlo, monospace; font-size: 11.899999618530273px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);">ItemType</span><span style="font-family: Menlo, monospace; font-size: 0.85em;" class="">: </span><span class="n" style="font-family: Menlo, monospace; font-size: 11.899999618530273px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);">Equatable</span><span style="font-family: Menlo, monospace; font-size: 0.85em;" class="">&gt;</span></li><li style="border-width: 0px 0px 0px 18px; border-left-style: solid; border-left-color: transparent; margin: 0px; outline: 0px; padding: 0px 10px 0px 0px; vertical-align: baseline; text-indent: -13px; white-space: pre-wrap; list-style-type: none;" class=""><code class="code-voice" style="border: 0px; font-size: 0.85em; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; font-family: Menlo, monospace; word-wrap: break-word;">    (<span class="vc" style="border: 0px; font-size: 11.899999618530273px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(63, 110, 116);">someContainer</span>: <span class="n" style="border: 0px; font-size: 11.899999618530273px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);">C1</span>, <span class="kt" style="border: 0px; font-size: 11.899999618530273px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(170, 51, 145);">_</span> <span class="vc" style="border: 0px; font-size: 11.899999618530273px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(63, 110, 116);">anotherContainer</span>: <span class="n" style="border: 0px; font-size: 11.899999618530273px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);">C2</span>) -&gt; <span class="n" style="border: 0px; font-size: 11.899999618530273px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);">Bool</span></code></li></ol></div><div class=""><br class=""></div></div></div>at some point? Or more accurately now:</div><div><ol class="code-lines" style="border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; counter-reset: li 0; line-height: 1.6em; list-style: none; font-family: Helvetica, Arial, sans-serif;"><li style="border-width: 0px 0px 0px 18px; border-left-style: solid; border-left-color: transparent; margin: 0px; outline: 0px; padding: 0px 10px 0px 0px; vertical-align: baseline; text-indent: -13px; white-space: pre-wrap; list-style-type: none;" class=""><code class="code-voice" style="border: 0px; font-size: 0.85em; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; font-family: Menlo, monospace; word-wrap: break-word;"><span class="kt" style="border: 0px; font-size: 11.899999618530273px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(170, 51, 145);">func</span> <span class="vc" style="border: 0px; font-size: 11.899999618530273px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(63, 110, 116);">allItemsMatch</span>&lt;</code><span class="vc" style="font-family: Menlo, monospace; font-size: 11.899999618530273px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(63, 110, 116);">C1</span><span style="font-family: Menlo, monospace; font-size: 0.85em;" class="">: </span><span class="n" style="font-family: Menlo, monospace; font-size: 11.899999618530273px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);">Container</span><span style="font-family: Menlo, monospace; font-size: 0.85em;" class="">, </span><span class="vc" style="font-family: Menlo, monospace; font-size: 11.899999618530273px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(63, 110, 116);">C2</span><span style="font-family: Menlo, monospace; font-size: 0.85em;" class="">: </span><span class="n" style="font-family: Menlo, monospace; font-size: 11.899999618530273px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);">Container</span><span style="font-family: Menlo, monospace; font-size: 0.85em;" class="">&gt;</span></li><li style="border-width: 0px 0px 0px 18px; border-left-style: solid; border-left-color: transparent; margin: 0px; outline: 0px; padding: 0px 10px 0px 0px; vertical-align: baseline; text-indent: -13px; white-space: pre-wrap; list-style-type: none;" class=""><code class="code-voice" style="border: 0px; font-size: 0.85em; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; font-family: Menlo, monospace; word-wrap: break-word;">    (<span class="vc" style="border: 0px; font-size: 11.899999618530273px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(63, 110, 116);">someContainer</span>: <span class="n" style="border: 0px; font-size: 11.899999618530273px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);">C1</span>, <span class="kt" style="border: 0px; font-size: 11.899999618530273px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(170, 51, 145);">_</span> <span class="vc" style="border: 0px; font-size: 11.899999618530273px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(63, 110, 116);">anotherContainer</span>: <span class="n" style="border: 0px; font-size: 11.899999618530273px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);">C2</span>) -&gt; <span class="n" style="border: 0px; font-size: 11.899999618530273px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);">Bool, </span></code><span class="n" style="font-family: Menlo, monospace; font-size: 11.899999618530273px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);">C1</span><span style="font-family: Menlo, monospace; font-size: 0.85em;" class="">.</span><span class="n" style="font-family: Menlo, monospace; font-size: 11.899999618530273px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);">ItemType</span><span style="font-family: Menlo, monospace; font-size: 0.85em;" class=""> == </span><span class="n" style="font-family: Menlo, monospace; font-size: 11.899999618530273px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);">C2</span><span style="font-family: Menlo, monospace; font-size: 0.85em;" class="">.</span><span class="n" style="font-family: Menlo, monospace; font-size: 11.899999618530273px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);">ItemType</span><span style="font-family: Menlo, monospace; font-size: 0.85em;" class="">, </span><span class="n" style="font-family: Menlo, monospace; font-size: 11.899999618530273px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);">C1</span><span style="font-family: Menlo, monospace; font-size: 0.85em;" class="">.</span><span class="n" style="font-family: Menlo, monospace; font-size: 11.899999618530273px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);">ItemType</span><span style="font-family: Menlo, monospace; font-size: 0.85em;" class="">: </span><span class="n" style="font-family: Menlo, monospace; font-size: 11.899999618530273px; border: 0px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(92, 38, 153);">Equatable</span></li></ol><div class=""><br class=""></div><div class="">Where has been used to make constraints more expressive, but now that we have removed it from some places, are we even consistent now? <b class="">where</b>&nbsp;works in some places and not other places. That seems inconsistent to me now.</div></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=""><br class=""></div><div class="">Well, if you want consistency, why not work through all the cases before freezing on one point solution? Perhaps the process should be expanded to formalize the overarching goal and put proposals like this under it. The process could be something like:</div><div class=""><br class=""></div><div class="">1) Propose goal, and list of point solutions, e.g. “...condition clauses..."</div><div class="">2) Review, refine and accept the goal</div><div class="">3) Work through tentative point solutions</div><div class="">4) Review the entire set of solutions.</div><div class="">5) Accept the solution set.</div><div class=""><br class=""></div><div class="">There is distinct possibility that working though other tasks can foster a deeper understanding and uncover better, more consistent solutions. Of course, another proposal can be created to revisit this topic, but that creates more churn. Formally reviewing overarching goals and all the aspects of achieving them could, in the long run, create a better product more efficiently and better involve and align the community.</div></div></div></blockquote><div><br class=""></div>I agree 100% and expresses some of my deep concern. Especially for syntax changes.</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=""><br class=""></div><div class="">This might slow down the rate of change in the language and libraries, but that is not necessarily a bad thing in something as complex as attempting to create a new language for a wide spectrum of applications.</div></div></div></blockquote><div><br class=""></div><div>Agreed. Moving too fast? Maybe. The core team is so smart, I just hope they aren’t juggling too much.</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=""><br class=""></div><div class="">This goal may be the exception, but the current process may not be optimal for complex multi-faceted problems that are on the horizon, like creating a metadata system, macros, kernel and driver software (?), …</div></div></div></blockquote><div><br class=""></div><div>It will sure be interesting what happens after Swift 3!</div><div><br class=""></div><div>Brandon</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=""><br class=""></div><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Jun 9, 2016, at 10:16 AM, Brandon Knope 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=""><meta http-equiv="content-type" content="text/html; charset=utf-8" class=""><div dir="auto" class=""><div class=""><br class=""><br class="">Sent from my iPad</div><div class=""><br class="">On Jun 9, 2016, at 11:55 AM, Brent Royal-Gordon &lt;<a href="mailto:brent@architechies.com" class="">brent@architechies.com</a>&gt; wrote:<br class=""><br class=""></div><blockquote type="cite" class=""><div class=""><blockquote type="cite" class=""><span class="">I believe large syntax changes should have more discussion from more developers and not a very small subset of them. The review announcement needs to be broader: the swift blog needs to announce it so more people know.</span><br class=""></blockquote><span class=""></span><br class=""><span class="">No.</span><br class=""></div></blockquote><div class=""><br class=""></div><div class="">Grrrr</div><br class=""><blockquote type="cite" class=""><div class=""><span class=""></span><br class=""><span class="">Firstly, for those who cannot follow the list—and I can't say I blame them—the -announce list already allows them to ignore everything except the beginnings of reviews. Anyone who wants to (and who speaks English) can be notified of any significant proposed change to the language and can submit their comments for the core team's consideration. That is enough.</span><br class=""></div></blockquote><div class=""><br class=""></div><div class="">I think your perspective is flawed here. You are precisely one of the "top developers" I have been referring to. Am I surprised this is your opinion? Not one bit.</div><div class=""><br class=""></div><div class="">Mailing lists are a rather old thing...and I think many will find them daunting or maybe somewhat annoying with all of the announcements. How many people are subscribed to announce? It does not seem like many because well...we don't always get a lot of feedback. We get feedback from the same people over and over. <b class="">How is this enough? How is this enough variety?</b></div><div class=""><br class=""></div><div class="">Just because "announce" is more palatable does not mean that it is being used in the way you are describing.&nbsp;</div><div class=""><br class=""></div><div class="">Maybe there is another problem then: people afraid to share their opinions publicly. I wonder why this would be.</div><div class=""><br class=""></div><blockquote type="cite" class=""><div class=""><span class=""></span><span class="">The purpose of reviews is not to cast ballots for or against a feature. It is to submit arguments, for and against, for the core team to consider as they decide whether and how to address the problem the proposal's "Motivation" section describes. For that purpose, there is no need to collect hundreds or thousands of reviews, and if we did, the review manager would be swamped anyway. It is enough to get a reasonable variety of eyes, from a reasonable variety of perspectives, on the problem.</span><br class=""></div></blockquote><div class=""><br class=""></div><div class="">Why do people keep saying I am asking for: "hundreds or thousands" of reviews? I am just asking for something like 20 - 25 <b class="">unique </b>people's feedback. We are not getting that. We get the same people over and over...which makes the feedback seem screwed to this small group's philosophies.</div><div class=""><br class=""></div><div class="">Getting feedback from the same <b class="">~10</b>&nbsp;people is not a "reasonable variety of eyes" in my opinion. That is a very small sample. And that sample is usually those who are very technically skilled...who I would say do not always design the best interfaces.</div><br class=""><blockquote type="cite" class=""><div class=""><span class=""></span><span class="">I think that has happened here. We have not heard from every perspective, but we have heard from enough of them that adding more will not help all that much. Feedback always has diminishing returns: going from one person to two is far more valuable than going from fifty-one to fifty-two.</span></div></blockquote><div class=""><br class=""></div><div class="">I think you will be very surprised come WWDC when people learn of this change.</div><div class=""><br class=""></div><div class="">How is there value when the same people keep justifying changes for the sake of consistency? Is this in the user's best interest? Or is this in the swift engineer's best interest?&nbsp;</div><div class=""><br class=""></div><div class="">This is precisely why I think more feedback is important. We need more than just the same people propping up proposals that gives an illusion that it is representative of everyone using swift.</div><div class=""><br class=""></div><div class="">The bar <b class="">should </b>be high for changing syntax, so I don't buy the argument that 25 people sharing their feedback is somehow less valuable than 10 people sharing.</div><br class=""><blockquote type="cite" class=""><div class=""><span class=""></span><span class="">And in particular, I *don't* think the beginner perspective is an especially worrisome one for this particular proposal. </span></div></blockquote><div class=""><br class=""></div><div class="">I don't think this was though through thoroughly enough. It just happened too fast</div><br class=""><blockquote type="cite" class=""><div class=""><span class="">Though some of the syntaxes we considered might have been confusing for beginners (*cough*semicolon*cough*), the one the core team settled in is actually one of the simplest, and certainly much simpler than the status quo. If anything, the people most disadvantaged by this solution are the power users who are used to the "multiple if-let" shorthand and will now have to add extra keywords to their code.</span><br class=""></div></blockquote><div class=""><br class=""></div><div class="">Maybe you are right. Maybe I am vastly wrong. But I guess this will be clearer come WWDC.</div><div class=""><br class=""></div><div class="">And I already know how the people complaining about this change will be silenced: it was done for the consistency of the language and the grammar.</div><div class=""><br class=""></div><div class="">How can us simpletons argue against that?</div><div class=""><br class=""></div><div class="">Also, I want to make clear that my concern is not just for this review but for future reviews also. <b class="">How different could the language look with more varied feedback?</b></div><div class=""><br class=""></div><div class="">Again, I hope I am wrong =/</div><div class="">Brandon</div><div class=""><br class=""></div><br class=""><blockquote type="cite" class=""><div class=""><span class="">-- </span><br class=""><span class="">Brent Royal-Gordon</span><br class=""><span class="">Architechies</span><br class=""><span class=""></span><br class=""></div></blockquote></div>_______________________________________________<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=""></div></blockquote></div><br class=""></div></div></blockquote></div><br class=""></body></html>