<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 Mar 9, 2016, at 3:15 PM, Evan Maloney <<a href="mailto:emaloney@gilt.com" class="">emaloney@gilt.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=""><div class="">On Mar 5, 2016, at 5:15 PM, Jon Hoffman via swift-users <<a href="mailto:swift-users@swift.org" class="">swift-users@swift.org</a>> wrote:<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=""></div></div></div></div></blockquote><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=""><p class="MsoNormal">To be honest, I think that Apple may have done a disservice
to POP by giving it the name “Protocol-Oriented Programming”. With OOP and POP having such similar names,
people tend to relate them together and in my opinion, how you design your application
with POP is fundamentally different than with OOP. Hopefully I will be able to write some additional posts about designing applications in a POP way using case studies. Just a matter of finding time</p></div></div></div></div></blockquote>Interestingly, we just had a discussion about abstract classes on the Swift Evolution mailing list, and many of the people who opposed the idea of adding the feature cited the fact that Swift was a protocol-oriented programming language rather than an object-oriented programming language.</div><div class=""><br class=""></div><div class="">By that argument, because Swift is protocol-oriented, classes should be treated like second-class citizens that shouldn't evolve new features and don't deserve the same level of functionality provided by just about every other object-oriented programming language (aside from ObjC).</div><div class=""><br class=""></div><div class="">Calling Swift protocol-oriented seems to have led to a certain level of dogmatism and reflexive opposition to anything seen as object-oriented; it's protocols vs. classes.</div><div class=""><br class=""></div><div class="">Personally, what I love about Swift is that it doesn't fit into just one "oriented programming" box. But perhaps I'm in the minority.</div><div class=""><br class=""></div></div></div></blockquote></div><div class=""><br class=""></div><div class="">I am not a big fan of abstract classes however that is a personal opinion. Being able to use the paradigm that you want to use with Swift is one of the best features. </div><div class="">Jon</div></body></html>