Staff Software Engineer

Archive for 2015

My Problem With Twitter

I’ve been seriously using Twitter for a bit over a year. When the service first came out, I thought it was silly – why would I care what celebrities ate for lunch? Of course, that just meant that I didn’t understand the service, like so many others.

In 2013, I got myself an account on app.net because it was all the rage (and every podcast I listened to kept on singing its praises). None of my High School friends were on it, but I followed some people from the tech world. I even had a few conversations with Don Melton on ADN. After a while, I let that account lie fallow – I had lost interest.

Fast forward a few months to December 2014. I had just finished my first quarter of college. I was starting to take myself seriously as an iOS developer. And I, for reasons I cannot recall, started using Twitter. At first, I followed the same people I followed elsewhere on the internet. But after a while, I started to feel like I knew some of the people I was communicating with – that I was one of them.

That’s all well and good, but the problem is that the sort of relationship that Twitter fosters is asymmetrical. I can follow and engage with and look up to people who barely know I exist. I can see hundreds of people sharing the best moments of their lives, while I’m sitting alone on the couch in my apartment watching Netflix. My timeline gets filled with people I think I know, talking, and I can’t help but feel left out.

Sure, I have real friends on Twitter as well, but I’d say more than 80% of the people I interact with on the service are ‘internet friends’ or ‘internet celebrities’. You know what really knocks the wind out of your sails? When there’s someone you look up to, and you meet, and then they don’t follow you on Twitter. It just screams “I don’t want to see what you have to say”. But it’s not really their fault. It’s Twitter’s. It’s mine.

And there’s my problem with Twitter. It enables me to feel terrible about myself for absolutely no good reason every day. Talking with people on Twitter is almost like negative social interaction – it leaves you feeling more lonely than you started. And that sucks.

Dynamic Casting in Swift

We’ve been spoiled by Objective-C’s runtime flexibility. Its tendency for dynamic dispatch, as well as a very powerful runtime (that’s exposed via both Objective-C and C APIs) has meant that dealing with arbitrary data was an easy task. You just check [object isKindOfClass:klass] and accept id parameters and everything works as expected.

In Swift, however, we have a statically-typed language where the compiler really needs us to know types at compile-time, rather than runtime. In general, this helps us write safer code than was possible in Objective-C, but makes dealing with data this is fundamentally untyped a real challenge. Swift has two operators that help to bridge the gap between static safety and the power of dynamicism: as and as?.

Read More