<html><head><style>body{font-family:Helvetica,Arial;font-size:13px}</style></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;"><div class="" style="-webkit-print-color-adjust: exact; margin: 0px;">Proposal link:&nbsp;<a href="https://github.com/apple/swift-evolution/blob/master/proposals/0192-non-exhaustive-enums.md">https://github.com/apple/swift-evolution/blob/master/proposals/0192-non-exhaustive-enums.md</a><br class=""></div><div class="" style="-webkit-print-color-adjust: exact; margin: 0px;"><br></div><div class="" style="font-family: &quot;helvetica Neue&quot;, helvetica; font-size: 14px; -webkit-print-color-adjust: exact; margin: 0px;"><p class="" style="font-family: Helvetica, arial, sans-serif; -webkit-print-color-adjust: exact; margin: 0px 0px 15px;"><b>What is your evaluation of the proposal?</b></p><p class="" style="font-family: Helvetica, arial, sans-serif; -webkit-print-color-adjust: exact; margin: 0px 0px 15px;">-1.</p><p class="" style="font-family: Helvetica, arial, sans-serif; -webkit-print-color-adjust: exact; margin: 0px 0px 15px;"><b>Is the problem being addressed significant enough to warrant a change to Swift?</b></p><p class="" style="font-family: Helvetica, arial, sans-serif; -webkit-print-color-adjust: exact; margin: 0px 0px 15px;">I’m afraid not.</p><p class="" style="font-family: Helvetica, arial, sans-serif; -webkit-print-color-adjust: exact; margin: 0px 0px 15px;">From my perspective as a Swift user, this change represents nontrivial language churn without providing a solution to a problem I have. The proposal doesn’t describe any benefits to me as an open source library maintainer or as a Swift developer. With earnest respect, the motivation section reads like “enums grow sometimes, but we like to exhaustively switch over them, so wouldn’t it be cool if …”, which is only a theoretical motivation. It fails to describe how and why this proposal would improve my Swift code or my experience using Swift.</p><p class="" style="font-family: Helvetica, arial, sans-serif; -webkit-print-color-adjust: exact; margin: 0px 0px 15px;">This appears to be a solution to a non-existing problem. I worry that making this change will alienate developers from Swift and I caution against accepting it.</p><p class="" style="font-family: Helvetica, arial, sans-serif; -webkit-print-color-adjust: exact; margin: 0px 0px 15px;"><b>Does this proposal fit well with the feel and direction of Swift?</b></p><p class="" style="font-family: Helvetica, arial, sans-serif; -webkit-print-color-adjust: exact; margin: 0px 0px 15px;">It may have at one time point in time, but not now.</p>The chaotic churn of the language, the syntax, and the standard library is supposed to be behind us. We need to accept that things fell into place as they did, often in imperfect ways. We probably could correct all the imperfections, but when would we ever stop? Language churn has a cost.&nbsp;This proposal is something that I could definitely see being a part of Swift 2 or Swift 3, but we have already decided that enums are exhaustive. This change, and changes fundamental to the cognitive model Swift programmers already have of their tool, need to be heavily weighted against language churn</div><div class="" style="font-family: &quot;helvetica Neue&quot;, helvetica; font-size: 14px; -webkit-print-color-adjust: exact; margin: 0px;"><b><br></b></div><div class="" style="font-family: &quot;helvetica Neue&quot;, helvetica; font-size: 14px; -webkit-print-color-adjust: exact; margin: 0px;"><b>If you have used other languages or libraries with a similar feature, how do you feel that this proposal compares to those?</b></div><div class="" style="font-family: &quot;helvetica Neue&quot;, helvetica; font-size: 14px; -webkit-print-color-adjust: exact; margin: 0px;"><b style="font-family: Helvetica, arial, sans-serif;"><br></b></div><div class="" style="font-family: &quot;helvetica Neue&quot;, helvetica; font-size: 14px; -webkit-print-color-adjust: exact; margin: 0px;">Scala’s match syntax bears a striking&nbsp;resemblance to Swift’s switch syntax; however, Scala does not require exhaustive cases. If the developer does not include a default case and none of the cases match the expression, an exception is thrown. Because of Swift’s error-handling model, I don’t know that this behaviour would be desirable either (though I will say it makes sense in Scala).</div><div class="" style="font-family: &quot;helvetica Neue&quot;, helvetica; font-size: 14px; -webkit-print-color-adjust: exact; margin: 0px;"><b style="font-family: Helvetica, arial, sans-serif;"><br></b></div><div class="" style="font-family: &quot;helvetica Neue&quot;, helvetica; font-size: 14px; -webkit-print-color-adjust: exact; margin: 0px;"><b style="font-family: Helvetica, arial, sans-serif;">How much effort did you put into your review? A glance, a quick reading, or an in-depth study?</b></div><div class="" style="font-family: &quot;helvetica Neue&quot;, helvetica; font-size: 14px; -webkit-print-color-adjust: exact; margin: 0px;"><br></div><div class="" style="font-family: &quot;helvetica Neue&quot;, helvetica; font-size: 14px; -webkit-print-color-adjust: exact; margin: 0px;">I read most of the proposal (okay I skimmed some of the nitty-gritty, but I read to the end of “Source compatibility”) as well as looked over the pre-review threads and skimmed GitHub pull request thread.</div></div> <br> <div id="bloop_sign_1513799318172658944" class="bloop_sign"><div style="font-family:helvetica,arial;font-size:13px">--&nbsp;<br>Ash Furrow<br>https://ashfurrow.com/</div></div> <br><p class="airmail_on">On December 19, 2017 at 5:58:14 PM, Ted Kremenek via swift-evolution (<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>) wrote:</p> <blockquote type="cite" class="clean_bq"><span><div style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div></div><div>



<title></title>


<p style="-webkit-print-color-adjust: exact; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; font-family: Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255); margin-top: 0px !important;" class="">The review of "SE 0192 - Non-Exhaustive Enums" begins now
and runs through&nbsp;<strong style="-webkit-print-color-adjust: exact;" class="">January 3,
2018</strong>.</p>
<p style="-webkit-print-color-adjust: exact; margin: 15px 0px; font-family: Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);" class="">The proposal is available here:</p>
<blockquote style="-webkit-print-color-adjust: exact; margin: 15px 0px; border-left-width: 4px; border-left-style: solid; border-left-color: rgb(221, 221, 221); padding: 0px 15px; color: rgb(119, 119, 119); font-family: Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);" class="">
<div style="-webkit-print-color-adjust: exact; margin: 0px;" class=""><a href="https://github.com/apple/swift-evolution/blob/master/proposals/0192-non-exhaustive-enums.md" class="">https://github.com/apple/swift-evolution/blob/master/proposals/0192-non-exhaustive-enums.md</a></div>
</blockquote>
<p style="-webkit-print-color-adjust: exact; margin: 15px 0px; font-family: Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);" class="">Reviews are an important part of the Swift evolution
process. All review feedback should be sent to the swift-evolution
mailing list at:</p>
<blockquote style="-webkit-print-color-adjust: exact; margin: 15px 0px; border-left-width: 4px; border-left-style: solid; border-left-color: rgb(221, 221, 221); padding: 0px 15px; color: rgb(119, 119, 119); font-family: Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);" class="">
<div style="-webkit-print-color-adjust: exact; margin: 0px;" class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a></div>
</blockquote>
<p style="-webkit-print-color-adjust: exact; margin: 15px 0px; font-family: Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);" class="">or, if you would like to keep your feedback private,
directly to the review manager.&nbsp;</p>
<p style="-webkit-print-color-adjust: exact; margin: 15px 0px; font-family: Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);" class="">When replying, please try to keep the proposal link at the
top of the message:</p>
<blockquote style="-webkit-print-color-adjust: exact; margin: 15px 0px; border-left-width: 4px; border-left-style: solid; border-left-color: rgb(221, 221, 221); padding: 0px 15px; color: rgb(119, 119, 119); font-family: Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);" class="">
<div style="-webkit-print-color-adjust: exact; margin: 0px;" class="">Proposal link: <a href="https://github.com/apple/swift-evolution/blob/master/proposals/0192-non-exhaustive-enums.md" class="">https://github.com/apple/swift-evolution/blob/master/proposals/0192-non-exhaustive-enums.md</a><br style="-webkit-print-color-adjust: exact;" class="">
...<br style="-webkit-print-color-adjust: exact;" class="">
Reply text<br style="-webkit-print-color-adjust: exact;" class="">
...<br style="-webkit-print-color-adjust: exact;" class="">
Other replies</div>
</blockquote>
<h3 id="toc_0" style="-webkit-print-color-adjust: exact; margin: 20px 0px 10px; padding: 0px; -webkit-font-smoothing: antialiased; cursor: text; position: relative; font-size: 18px; font-family: Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);" class="">What goes into a review of a proposal?</h3>
<p style="-webkit-print-color-adjust: exact; margin: 15px 0px; font-family: Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);" class="">The goal of the review process is to improve the proposal
under review through constructive criticism and, eventually,
determine the direction of Swift.&nbsp;</p>
<p style="-webkit-print-color-adjust: exact; margin: 15px 0px; font-family: Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);" class="">When reviewing a proposal, here are some questions to
consider:</p>
<ul style="-webkit-print-color-adjust: exact; margin: 15px 0px; padding-left: 30px; font-family: Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);" class="">
<li style="-webkit-print-color-adjust: exact; margin: 0px;" class="">
<p style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;" class="">What is your evaluation of the proposal?</p>
</li>
<li style="-webkit-print-color-adjust: exact; margin: 0px;" class="">
<p style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;" class="">Is the problem being addressed significant enough to
warrant a change to Swift?</p>
</li>
<li style="-webkit-print-color-adjust: exact; margin: 0px;" class="">
<p style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;" class="">Does this proposal fit well with the feel and direction of
Swift?</p>
</li>
<li style="-webkit-print-color-adjust: exact; margin: 0px;" class="">
<p style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;" class="">If you have used other languages or libraries with a
similar feature, how do you feel that this proposal compares to
those?</p>
</li>
<li style="-webkit-print-color-adjust: exact; margin: 0px;" class="">
<p style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;" class="">How much effort did you put into your review? A glance, a
quick reading, or an in-depth study?</p>
</li>
</ul>
<p style="-webkit-print-color-adjust: exact; margin-top: 15px; margin-right: 0px; margin-left: 0px; font-family: Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255); margin-bottom: 0px !important;" class="">Thanks,<br style="-webkit-print-color-adjust: exact;" class="">
Ted Kremenek<br style="-webkit-print-color-adjust: exact;" class="">
Review Manager</p>


_______________________________________________<br>swift-evolution mailing list<br>swift-evolution@swift.org<br>https://lists.swift.org/mailman/listinfo/swift-evolution<br></div></div></span></blockquote></body></html>