In the comments to my previous post, Suzi asked a question that deserved a detailed answer, so I’m turning it into another blog post…

so, do you think the webOS way (developer mode) is better choice? 

I think that for webOS, it was the right choice, and I spent a lot of time arguing for it and supporting it internally. Is it always the right choice? I’m not sure I can make that blanket statement. With webOS we needed to create an app ecosystem; it wasn’t easy to build a financial case to get developers to write for a new and unproven platform, so we looked for ways to change the dynamics. One thing we did was subsidize development indirectly through the contests (which injected a couple of million dollars into the developer pool) and through bundling app dollars into phones. But we also felt that if we could encourage the hobbyist/individual programmer onto the platform with non-financial reasons and incentives, that would help us grow the platform faster than device sales alone, and that would help us grow the app ecosystem, which would encourage device sales. There’s a chicken and egg problem here, which every new platform needs to find solutions to. 

So we felt we could attract developers to the platform by making them welcome, as opposed to Apple’s model, which is one of, well, an indifferent hands-off approach that borders on arrogance. Well, sometimes Apple wanders over the border to arrogance. Other times, it simply treats developers as if they don’t exist, or are infinitely replaceable. There are reasons why they do this; there are reasons why I feel strongly they’ll regret this some day. It’s all about karma, and at some point Apple’s attitude towards developers will come home to roost. But right now, you can’t argue about their success. 

So we didn’t just tolerate homebrew, we encouraged and tried to embrace it as much as we could, to make developers feel welcome on the platform. That brought us some really good developers that otherwise wouldn’t have come to the platform, and they did some really nice apps, so I think it was the right, and a successful, set of decisions.

But building in developer mode, making it easy to side load apps onto the device, is not a panacea and it creates risks and challenges. A mobile device is a very resource limited device, and so a misbehaving app can do all sorts of things that can degrade or damage the device, and unless you understand what’s going on, it’s easy to blame the device for the problems (this is especially true of poor battery life, and webOS battery life was a challenge on the best days; it’s really the #1 reasons why I moved back to IOS full time when I left Palm/HP.)

The easier you make side loading apps around the “official” channels, the easier you make piracy, and the harder you make managing that problem. And even on webOS, this was a problem and I was talking to developers on a regular basis about pirated copies and ways to try to get the binaries offline — with limited success, given that easily 80% of the complaints brought to my attention included the name “megaupload” attached. 

You also create a channel for malware and scam ware, one that can be tough to plug. The things that enable a homebrew app to do things to access the private bus and restricted APIs also allows apps to access private data and do things that aren’t caught by whatever things your app review process might be doing, which I won’t explain further other than to say the app review process is about more than seeing if an app crashes during testing. 

And what should a vendor do about a side loaded app it had no review or control over? Do you pull the kill switch on it? What’s the vendor’s responsibility to protect a user from herself? This turns into a slippery slope very fast. What if someone wrote an Angry Birds clone and the Angry Birds people wanted it kill switched, even though it was never published in the catalog? Where do you draw these lines? Most users would expect the vendor to kill switch an app doing identify theft, even if it was homebrew loaded, but once you make a decision to step in there, it creates legal questions about an implied liability to step in on other legal issues — and would a court force a vendor to kill an infringing Angry Birds clone? Most users would probably be pissed, based on my experience, but my guess in a court might well enforce that requirement. Tech lawyers (and community managers, and app review geeks) get ulcers having meetings about stuff like this… 

What’s this mean for Apple? Should it take its jailbreak community and embrace homebrew the way we did? 

Honestly, I’m not so sure. Because the easier you make these side loading capabilities, the more likely people will do it. And the larger the group of users doing it, the larger the percentage of users who only see the fun, and don’t understand the responsibilities and side effects, of the choice they’re making. And those are the ones that when it blows up in their faces demand the vendor fix the problem and trash them online for a problem the user created for themselves — and I just don’t think Apple needs that set of headaches. By tolerating but not encouraging the jailbreak community, they limit how large it grows, and it tends to limit the size of the population to people who understand that if they do this, then don’t blame Apple when bad things happen. 

I’m not kidding when I say I used to recommend that turning on developer mode should have been done by a big red button that made it painfully clear that if you do this, here there be dragons and there’s no calvary coming to save you. 

That’s the flip side of the unwalled garden. You really CAN’T have it both ways: the walls protect you from the evil nasties that live in the forest. If you tear down the walls, you can’t complain when the owners of the walls don’t stop those evil nasties show up and kill your dog. and your family. and send off your personal info to Moldova. And yet, people still do this, and then blame the vendor when the nasties show up.

So I don’t blame Apple for not encouraging homebrew. There’s no market or business reason for them to. It’s a potential customer support and PR nightmare. The audience it’d likely serve is already jail breaking anyway.

So while I think we did the right thing for webOS, Apple is doing the appropriate thing for it, and for IOS. Which is probably not the answer the geeks want, but Apple doesn’t design and build their products for geeks, and haven’t for a long, long time.  Nor, given their success, do they need to. Which, of course, pisses off the geeks, who want to think they’re the center of the universe…