I just read this post by PlanetBeing about Apple’s relationship with the jail-break and application cracking community. While I have some sympathy with his position I can’t wholeheartedly agree. There are rational reasons why developers and Apple might not support jail-breaking even if it does nothing to help extinguish piracy.
Back in March when I wrote about my experience with Yummy users who have jail-broken handsets I tried to be very careful to make a distinction between the process of jail-breaking and that of pirating apps. In principle I have no problem with people freeing their phones from the shackles that Apple include.
However, one of the nice things about developing for the iPhone is that it is a closed system. When you write a program for the Mac or Windows or Solaris you have to deal with all kinds of variables that you have no control over. Does your program work when someone plugs in a ten year old scanner? When they plug in an iSCSI disk? With five monitors? When they virtualise the OS? When they use Solaris Zones? (All these are actual problems I’ve come across over the years I’ve worked in IT.) Fundamentally you just don’t know. While you wouldn’t expect them to make a difference, you can’t count them out. And when you’re supporting software you have to take into account the costs of tracking down, identifying and fixing these obscure problems that you can’t actually see on your own hardware.
On the iPhone, as with most games consoles, you have none of this. An iPhone is an iPhone. You can rely on the amount of memory available. You know there’s one screen with one size. The few areas of variation are well known.
When people start changing the operating system, as happens when you jail-break a phone, all these things you can rely on become, well, less reliable. It can be small things like performance tuning. With a stock iPhone I can try to make my application responsive because I know how aggressively I can cache data. Jail-broken phones often have less, sometime substantially less, memory available. (Actually, I say a small thing. For an application within certain bounds performance is a “nice to have.” For a game your tolerances may be much smaller.)
More significantly, some system level components that you can usually rely on can change under your feet. In the case of the “blank tags” bug in Yummy it was because the version of SQLite sometimes changes when you jail-break.
I spent a significant amount of time trying to track this problem down and in the end only stumbled across the solution by accident.
What I’m trying to say here is that while we can agree that people who jail-break their handsets are not all stealing their applications, we cannot pretend that their actions have zero cost. The time that I spent tracking down the bug could have been better spent adding new features or fixing bugs that affect all users and not just a minority.
PlanetBeing says that the jail-break community does not “believe that Apple should have a support burden for modified devices.” I think developers of third party applications deserve a similar break.