I’ve enjoyed watching the debates, but haven’t sided with one team yet. It’s hard to believe that you can be productive with subclassing unavailable by default, but looking at the Swift I’ve written the past couple of years, subclassing has not been my tool to solve problems. Other than classes like
UIView, I have hardly any subclasses, and each instance could use protocol extensions and remove the need for subclasses.
Even though I’m not convinced final by default is the best option, the evidence is pointing to it. I love Swift and am looking forward to spending more time in Swift 3 over the next year. Only real experience in the hands of developers will tell us if this is the right decision.