<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div>I agree with everything James has to say here. Making classes non-subclassable by default is not optimal. </div><div id="AppleMailSignature">A lot of fixes for small bugs in UIKit involve using a subclass that overrides at method or slightly modified behaviour as a temporary patch until the issue is fixed at the framework level. </div><div id="AppleMailSignature">Preventing this <b>and</b> introducing a new keyword simply adds to the complexity without bringing too much to the table. </div><div id="AppleMailSignature"><br>Aditya Krishnadevan. </div><div><br>On 06-Jul-2016, at 6:03 PM, James Campbell via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt; wrote:<br><br></div><blockquote type="cite"><div><div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)">-0.5 I think preventing subclassing is a bad idea, sometimes there are bugs which can only be resolved by subclassing and this removes a lot of power from app makers.</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)"><br></div><div class="gmail_extra"><div class="gmail_quote">On 6 July 2016 at 13:23, Jacopo Andrea Giola via swift-evolution <span dir="ltr">&lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><span class="">&gt;       * What is your evaluation of the proposal?<br>
<br></span><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;color:rgb(0,0,0)">Unless someone can prove to me why we wouldn&#39;t need this for fixing bugs I still thing this is only a good system to hint at the developer that they shouldn&#39;t be using this class unless they have to.</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;color:rgb(0,0,0)">I could envision the compiler using the overide keyword to force the developer to acknowledge they are using a non-reccomended class like so:</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;color:rgb(0,0,0)">// This class implements a polyfill which fixes a bug in the keychain class</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;color:rgb(0,0,0)">override class PolyfillForKeychainBug: Keychain {</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;color:rgb(0,0,0)">}</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;color:rgb(0,0,0)">Without this the compiler would throw an error &quot;Non-open class can&#39;t be overridden without `override` keyword&quot;</div>
<span class=""><br>
&gt;       * Does this proposal fit well with the feel and direction of Swift?<br>
<br></span><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0);display:inline">​It does in terms of safety but not in terms of simplicity.​</div><br>
<span class=""><br>
&gt;       * If you have used other languages or libraries with a similar feature, how do you feel that this proposal compares to those?<br>
<br></span><span class=""><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0);display:inline">​It works like Java but I never liked final​</div><br></span></blockquote><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><span class="">
&gt;       * How much effort did you put into your review? A glance, a quick reading, or an in-depth study?<br>
<br>
</span>I’ve read the proposal<br>
<div class=""><div class="h5">_______________________________________________<br>
swift-evolution mailing list<br>
<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank" style="cursor: url(&quot;chrome-extension://ledmjlnkdlappilhaaihfhanlpdjjalm/rockhand.png&quot;), auto;">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
</div></div></blockquote></div><br></div></div>
</div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>swift-evolution mailing list</span><br><span><a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a></span><br><span><a href="https://lists.swift.org/mailman/listinfo/swift-evolution">https://lists.swift.org/mailman/listinfo/swift-evolution</a></span><br></div></blockquote></body></html>