<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div></div><div><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote class="" style="margin: 0px 0px 0px 40px; border: none; padding: 0px;"><a href="https://github.com/apple/swift-evolution/blob/master/proposals/0026-abstract-classes-and-methods.md" class="" style="background-color: rgba(255, 255, 255, 0);"><font color="#000000">https://github.com/apple/swift-evolution/blob/master/proposals/0026-abstract-classes-and-methods.md</font></a></blockquote></blockquote></blockquote></blockquote><br></div><div><br></div><div><br>On Feb 26, 2016, at 9:58 PM, <Sender redacted as they replied to me not list> wrote:<br><br></div><blockquote type="cite"><div><meta http-equiv="content-type" content="text/html; charset=utf-8"><div>+1</div><div id="AppleMailSignature"><br></div><div id="AppleMailSignature">I do not see his proposal as forcing inheritance, but letting it fight more and more without a hand tied behind its back. Composition and mixins should be strengthened, but that does not mean that inheritance should not be improved. </div><div id="AppleMailSignature"><br></div><div id="AppleMailSignature">Trust coders to make the right decisions, do not withhold tools from them. Inheritance is part of Swift and a supported paradigm, nothing wrong with using it well and this proposal adds a tool to the inheritance toolbox, without forcing people to use that pattern or withholding progress for functional aspects of the language and other patterns.<br></div></div></blockquote><div><br></div><div><div><span style="background-color: rgba(255, 255, 255, 0);">The proposal does not force inheritance but anyone using abstract does force it on code using the abstract class.</span></div><div><span style="background-color: rgba(255, 255, 255, 0);"><br></span></div><div><span style="background-color: rgba(255, 255, 255, 0);">In my view it is those who want abstract classes that are not trusting coders. If you want to use inheritance please do, I sometimes do too although with decreasing frequency over time. Making abstract classes forces all users of your code to subclass </span></div></div><div><span style="background-color: rgba(255, 255, 255, 0);"><br></span></div><div><span style="background-color: rgba(255, 255, 255, 0);">My -1 is probably a bit strong, maybe minus 0.5 is more like but I do think that it would encourage patterns that:</span></div><div><span style="background-color: rgba(255, 255, 255, 0);">a) I don't particularly like</span></div><div>b) tend to have effects that pervade deeply into code bases.</div><div><br></div><div>When I programmed in Java and C++ in the fairly distant past I used abstract classes heavily (although often for interfaces/protocols) but since developing in Objective-C and more recently Swift and using Cocoa Touch libraries I've really come to appreciate delegation. I have also over time become more concerned with the risks and complexities of inheritance which I think should be regarded as an advanced rather than a basic technique. I fear this proposal would force library users to adopt inheritance. I think abstract classes are best discouraged rather than supported. </div><div><br></div><div>Joseph</div><br><blockquote type="cite"><div><div id="AppleMailSignature"></div></div></blockquote></body></html>