The below is an off-site archive of all tweets posted by @mjtsai ever

July 18th, 2016

@danielpunkass @jckarter @concreteniche Yes. The interesting thing about Obj-C is that you can call or override them all.

via Tweetbot for Mac in reply to mjtsai

@danielpunkass @jckarter @concreteniche It’s not about embracing because fundamentally protocols are designed to hide details.

via Tweetbot for Mac in reply to danielpunkass

@danielpunkass @jckarter @concreteniche I think in practice protocols would intentionally not have enough surface area.

via Tweetbot for Mac in reply to danielpunkass

@concreteniche @jckarter That would be nice, but it doesn’t seem realistic to me. At least not on the time scale we need.

via Tweetbot for Mac in reply to concreteniche

@concreteniche @jckarter Yes, sometimes overriding private methods was (unfortunately) necessary. Already not possible with Swift.

via Tweetbot for Mac in reply to concreteniche

@jckarter @concreteniche In other words, API being “too specific” is both a flaw and a feature depending on the situation/point of view.

via Tweetbot for Mac in reply to jckarter

@jckarter So it’s less useful for the cases I’m talking about doing things unexpected by the API designer.

via Tweetbot for Mac in reply to jckarter

@jckarter @concreteniche Yes, but patching from the outside is limited because you can’t override anything that’s not in the protocol.

via Tweetbot for Mac in reply to jckarter

@concreteniche @jckarter Probably not as flexible. And changing classes to protocols doesn’t make the design/thinking issues go away.

via Tweetbot for Mac in reply to concreteniche

@concreteniche @jckarter I just don’t understand this idea that forbidding something magically makes the need for it go away.

via Tweetbot for Mac in reply to concreteniche

@jckarter bad decision. Whereas the framework client, without the ability to override, has no recourse.

via Tweetbot for Mac in reply to mjtsai

@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

via Tweetbot for Mac in reply to jckarter

@jckarter I mean in general—undocumented/unpromised subclassing details and non-subclassing-related bugs.

via Tweetbot for Mac in reply to jckarter

@austinzheng So fear is that either there is no good answer or they don’t care.

via Twitter Web Client in reply to austinzheng

@austinzheng The issue to me is that we know they’re smart, but they have failed to allay the concerns.

via Twitter Web Client in reply to austinzheng

@jckarter Aha, that makes sense. So then you either force a recompile or can’t optimize.

via Tweetbot for Mac in reply to jckarter

@jckarter I don’t understand why you have to support bugs (rather than the promised contract) forever. Why not warn like with deprecation?

via Tweetbot for Mac in reply to jckarter

@jckarter I would have thought you could revoke a final across a module boundary because clients can’t inline, anyway.

via Tweetbot for Mac in reply to jckarter

@jckarter You’re saying no change for Apple Swift frameworks because you consider the API, but it’s about protecting others who don’t?

via Tweetbot for Mac in reply to jckarter

@jckarter Right, but presumably you expect that to ultimately benefit end users (indirectly).

via Tweetbot for Mac in reply to jckarter

@jckarter @bsneed @colincornaby If it truly “doesn’t affect end users at all,” what could be the point of the change?

via Tweetbot for Mac in reply to jckarter

And, trying to copy Xcode 8b3 to the other Mac, got my regular reminder that AirDrop works less than half the time.

via Tweetbot for Mac

@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.

via Tweetbot for Mac in reply to jmfd

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?

via Tweetbot for Mac

Wondering whether 10.11.6 will finally fix the bug where newly attached drives don’t auto-mount.

via Tweetbot for Mac

@adamkaump I personally see those as hypothetical small wins measured against serious problems for which no one has answers.

via Tweetbot for Mac in reply to adamkaump

@adamkaump Thanks. That’s pretty much what other people in favor have been saying.

via Tweetbot for Mac in reply to adamkaump

@teddybeardog777 It eventually fixed itself, but I’m not sure what I did. Maybe restart.

via Tweetbot for Mac in reply to teddybeardog777

@adamkaump Because…you think the concerns about bugs and innovation are overblown? Outweighed? Some other reason?

via Tweetbot for iΟS in reply to adamkaump

@NeoNacho @iljawascoding @uliwitness Co-written by an Apple Swift engineer and informally proposed about by core team members in advance.

via Twitter Web Client in reply to NeoNacho

@mbarriault Maybe the ones designed with the least care, default closed classes all the way, will be those most in need of overriding?

via Tweetbot for Mac in reply to mbarriault

The Strange Case of the System Preferences Window Width: mjtsai.com/blog/2016/07/1…

via IFTTT

Exponential Time Complexity in the Swift Type Checker: mjtsai.com/blog/2016/07/1…

via IFTTT

@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.

via Tweetbot for Mac in reply to mbarriault

@mbarriault Most of the +1 responses were basically paraphrases of the first two quoted paragraphs from the proposal.

via Tweetbot for Mac in reply to mbarriault

@mbarriault I wasn’t trying to balance in terms of votes but to include the main points that were raised.

via Tweetbot for Mac in reply to mbarriault

@mbarriault I’m happy for you to read it. Not happy that you are assuming without reading that I was massively skewing the selection.

via Tweetbot for Mac in reply to mbarriault

@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.

via Tweetbot for Mac in reply to mbarriault

@mbarriault I think it’s a mistake to assume that the decision was based on the discussion.

via Tweetbot for Mac in reply to mbarriault

@mbarriault Lattner acknowledged that there was *not* consensus among the community, so they were going with what the core team wanted.

via Tweetbot for Mac in reply to mbarriault

@mbarriault I don’t see how you could read the discussion and think there was consensus.

via Twitter Web Client in reply to mbarriault