@danielpunkass @jckarter @concreteniche Yes. The interesting thing about Obj-C is that you can call or override them all.
@danielpunkass @jckarter @concreteniche It’s not about embracing because fundamentally protocols are designed to hide details.
@danielpunkass @jckarter @concreteniche I think in practice protocols would intentionally not have enough surface area.
@concreteniche @jckarter That would be nice, but it doesn’t seem realistic to me. At least not on the time scale we need.
@concreteniche @jckarter Yes, sometimes overriding private methods was (unfortunately) necessary. Already not possible with Swift.
@jckarter @concreteniche In other words, API being “too specific” is both a flaw and a feature depending on the situation/point of view.
@jckarter So it’s less useful for the cases I’m talking about doing things unexpected by the API designer.
@jckarter @concreteniche Yes, but patching from the outside is limited because you can’t override anything that’s not in the protocol.
@concreteniche @jckarter Probably not as flexible. And changing classes to protocols doesn’t make the design/thinking issues go away.
@concreteniche @jckarter I just don’t understand this idea that forbidding something magically makes the need for it go away.
@jckarter bad decision. Whereas the framework client, without the ability to override, has no recourse.
@jckarter If this is about 3rd party frameworks, the vendor can always put a breaking change in a new version. If necessary to reverse a
@jckarter I mean in general—undocumented/unpromised subclassing details and non-subclassing-related bugs.
@austinzheng So fear is that either there is no good answer or they don’t care.
@austinzheng The issue to me is that we know they’re smart, but they have failed to allay the concerns.
@jckarter Aha, that makes sense. So then you either force a recompile or can’t optimize.
@jckarter I don’t understand why you have to support bugs (rather than the promised contract) forever. Why not warn like with deprecation?
@jckarter I would have thought you could revoke a final across a module boundary because clients can’t inline, anyway.
@jckarter You’re saying no change for Apple Swift frameworks because you consider the API, but it’s about protecting others who don’t?
@jckarter Right, but presumably you expect that to ultimately benefit end users (indirectly).
@jckarter @bsneed @colincornaby If it truly “doesn’t affect end users at all,” what could be the point of the change?
And, trying to copy Xcode 8b3 to the other Mac, got my regular reminder that AirDrop works less than half the time.
@jmfd I’ve done that, but then a couple times I forgot to launch it and later found that my iPhone didn’t have access to the latest files.
Isn’t there some way that Dropbox can see I’m unarchiving Xcode 8 outside its folder and ignore those file system events without 150% CPU?
Wondering whether 10.11.6 will finally fix the bug where newly attached drives don’t auto-mount.
@adamkaump I personally see those as hypothetical small wins measured against serious problems for which no one has answers.
@adamkaump Thanks. That’s pretty much what other people in favor have been saying.
@teddybeardog777 It eventually fixed itself, but I’m not sure what I did. Maybe restart.
@adamkaump Because…you think the concerns about bugs and innovation are overblown? Outweighed? Some other reason?
@NeoNacho @iljawascoding @uliwitness Co-written by an Apple Swift engineer and informally proposed about by core team members in advance.
@mbarriault Maybe the ones designed with the least care, default closed classes all the way, will be those most in need of overriding?
Medium URL Fragment Tracking: mjtsai.com/blog/2016/07/1… #mjtsaiblog
The Strange Case of the System Preferences Window Width: mjtsai.com/blog/2016/07/1… #mjtsaiblog
The Secret Life of Types in Swift: mjtsai.com/blog/2016/07/1… #mjtsaiblog
Exponential Time Complexity in the Swift Type Checker: mjtsai.com/blog/2016/07/1… #mjtsaiblog
@mbarriault I think people are not up in arms b/c this was long the expected result and impact is limited b/c only affects Swift classes.
@mbarriault Most of the +1 responses were basically paraphrases of the first two quoted paragraphs from the proposal.
@mbarriault I wasn’t trying to balance in terms of votes but to include the main points that were raised.
@mbarriault I’m happy for you to read it. Not happy that you are assuming without reading that I was massively skewing the selection.
@mbarriault That was me. I didn’t intend to only collect against. In fact, some are from +1 replies. And I include the proposal’s co-author.
@mbarriault I think it’s a mistake to assume that the decision was based on the discussion.
@mbarriault Lattner acknowledged that there was *not* consensus among the community, so they were going with what the core team wanted.
@mbarriault I don’t see how you could read the discussion and think there was consensus.