This is the talk which I gave at NSScotland 2014 in Edinburgh on October 26, 2014. I will be giving it at NSNorth 2015, April 10-12, 2015.
The talk is written in Deckset-flavoured Markdown.
A recording of my presentation of v1.0 of this talk at NSScotland is available.
Every programmer regularly faces the challenges of managing complexity and change. Subclassing can help us simplify, by sharing code and interfaces between related parts of our program. But when requirements change out from under our class hierarchy, unanticipated fragility can mean bugs, sweat and tears. Swift offers us a better way.
Subclassing is a broken idea, so factor & compose instead where possible, and when Cocoa makes you subclass, do it in a factored, composable way.