<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 Dec 17, 2015, at 8:48 PM, Rod Brown <<a href="mailto:rodney.brown6@icloud.com" class="">rodney.brown6@icloud.com</a>> 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=""><br class=""><div class=""><div class=""><div class="">I completely agree. We have the final keyword for that, ensuring that if I do not plan for it to be subclassable, it cannot be.</div><div class=""><br class=""></div><div class="">The question here is not “should a framework author be able to block a developer from subclassing?” but “Should I assume it is, or is not, subclassable?"</div><div class=""><br class=""></div><div class="">I err on the side of flexibility. Others err on the side of simplicity and safety.</div></div></div></div></div></blockquote><div><br class=""></div><div>Fair enough. I used to err on the side of flexibility as well. For a while Ruby was my favorite language partly because it is extraordinarily flexible. </div><div><br class=""></div><div>These days really I appreciate having a compiler prove as much as it possibly can about my code. Every time the compiler proves something for me there is one more thing I know with absolute certainty about it (modulo compiler bugs!) and one less thing I need to think carefully about on my own. </div><div><br class=""></div><div>The ability to make assumptions about code because the compiler proved them to be true is extremely liberating! Far more liberating than flexibility that was not designed with intention.</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=""></div><br class=""><div class=""><blockquote type="cite" class=""><div class="">On 18 Dec 2015, at 1:30 PM, Matthew Johnson <<a href="mailto:matthew@anandabits.com" class="">matthew@anandabits.com</a>> wrote:</div><div class=""><div class=""><br class=""></div><div class="">Legitimacy is in the eye of the beholder. I think it is quite legitimate for a framework author (especially the platform vendor) to decide what you can and cannot do with their framework. </div></div></blockquote></div><div class=""><blockquote type="cite" class=""><div class=""><div class=""><br class=""></div><div class="">When I hear about code in Apple’s frameworks that is responsible detecting and working around inappropriate uses of their frameworks it makes me cringe. Anything that helps to remove the need for this in the long run is a really great thing. </div></div></blockquote></div></div></div></div></blockquote></div><br class=""></body></html>