By John Gruber
Square Reader SDK lets you use Square hardware to take payments in your app.
I think I finally understand a certain misguided mindset that I’ve been baffled by for a decade. This mindset is exemplified by the sort of person who thinks that Apple “screwed them over” with the release of the iPhone 1.1.1 update.
The mindset manifests in many forms, but what it boils down to is this: a sense of entitlement that users should be able to do unsupported things and yet still be supported. That it makes no sense to expect support after taking unsupported actions is why I’ve found it baffling.
Here’s what I’ve figured out: the root cause of this is a wrongheaded notion about the nature of software. Because that’s what most of these issues boil down to: software. There is no limit to the depths of idiocy, so of course there are exceptions, but, for the most part, few reasonable people expect support after making unsupported hardware changes to a device.
With hardware, the constraints are visible. The limitations of what is supported and unsupported are issues of can’t: if, say, you replace the processor in your Mac, and it fails, what could Apple do? The machine itself can’t undo the processor swap you performed.
With software, though, the constraints are invisible and arbitrary. The limitations regarding what is and is not supported are issues of won’t rather than can’t. Right now, today, Apple could choose to support, either officially or tacitly, the development and installation of third-party iPhone software. They have chosen not to.
That this support decision is perhaps based on nothing more than marketing rather than being rooted in the laws of physics doesn’t change the fact that the decision was made — and that the decision as to what is supported and what is not lies with the vendor, not the customer.
This goes for iPhone SIM unlocks. On Mac OS X, this goes for unsupported system extensions like input managers and haxies, and for doing things like replacing the current version of a kernel extension or other system component with an older version from a previous release of Mac OS X because you read on MacFixIt that it works. You can do these things. You may well find them useful. You may well consider them essential to satisfy your own desires. But when you do these things, you are assuming responsibility for any adverse effects caused by them, now or in the future.
The point isn’t that you shouldn’t hack, or that you don’t have the right to do whatever you want with something you own. The point is that if you hack, you’re on your own. You can’t do unsupported things and expect to be supported for them just because you think these actions should be supported. It’s that simple.