TechCrunch is reporting that Facebook engineer Joe Hewitt has given up on iPhone development. According to them, Joe has stated the App Store review process is the main reason for his departure.
Now, Joe is an undoubtedly high-profile developer due to his involvement with Facebook and his creation of the Three20 project, and he's not the only developer to express dissatisfaction with the review process. His departure is something that Apple is certainly going to notice. I'm personally sorry to see him go, he was a valuable contributor to the iPhone development community.
That being said, however, if TechCrunch's reporting is accurate, then I have an issue with Joe's parting words… with his claimed reason for leaving the platform. It comes across, at least to me, as a cheap shot; misguided and even a touch hypocritical. Now, maybe the comment comes across as harsher than it was intended out of context, but have you read Facebook's terms of service?
Pretty much every proscription that's in the iPhone SDK, and many that aren't, are contained in the Facebook TOS. Facebook doesn't allow nudity, for example. It even has vague proscriptions against things like "bullying", and they retain the right to take down any material at any time "without reason". Without reason? You mean your content doesn't even have to be illegal, offensive, or a violation of the TOS for Facebook to be able to take down the end-result of your hard labor? Right. Yet, I haven't heard Joe say a single thing about Facebook's TOS, or threaten to leave the company or web development altogether as a result of his employer's oppressive and restrictive terms.
Pot, Kettle. Kettle, Pot.
The only meaningful difference between Facebook's TOS and the iPhone SDK agreement is that Apple acts as a gatekeeper, reviewing applications before they go on the store to make sure applications comply with the SDK agreement, whereas Facebook doesn't act as gatekeeper, they allow anything on, and then take down the offending material after the a complaint is filed.
I suppose the difference between the two approaches is an important one, but it's not without reason that the two function in different ways. Facebook hosts their content in the United States and is considered a "service provider". Under U.S. laws, and the laws of most countries, service providers have a certain amount of immunity as long as they take action to remove illegal or infringing content. As long as they respond to complaints in a timely fashion they are generally not liable, criminally nor civilly, for the content that their users and third-party developers put up. If Facebook hosts content that is illegal in another country, there's typically little chance of prosecution because of jurisdictional issues, so the only recourse is to send Facebook a takedown notice.
On the other hand, Apple is actually running a store. They sell applications using servers and even maintaining a physical presence in countries around the world. Apple's App Store does not benefit from a service provider's immunity the way Facebook does, nor can they hide from prosecution using jurisdiction since they actively sell their products around the world. Even though Apple is not the original author of the applications they sell, they can still be held liable, much the way that a shopkeeper who sells illegal goods, but doesn't manufacture them, can be held liable.
I really doubt that Apple wants this responsibility for reviewing applications any more than we developers want them to have it. I'd bet money that Apple's legal staff looked at the situation prior to the App Store's initial opening and came to the conclusion that opening the app store to any application without review would expose Apple to significant legal risks.
Yes, the review team screws up now and again, but they have a much harder job than Facebook's legal team because they have to be proactive and look at an enormous volume of material before it goes online and have to constantly make judgment calls. They have to make those judgment calls after spending only a very small amount of time with each app, and sometimes they don't get it right. But, Facebook doesn't always get everything right, either, despite benefiting from the service provider's immunity.
Simply put: the App Store is not the web, and Apple and Facebook are both taking similar steps to protect themselves from liability in light of their situations, which are fundamentally different. Part of the reason that the App Store has been so successful is precisely because it's NOT the web. It's easier and more focused than the web. It's on everybody's iPhone, all over the world, at all times. That's pretty cool, but there's a cost to that, and part of that cost is that it opens Apple up to liability. They have to cover their ass, and don't believe you wouldn't either in their shoes.
It's fine to hate the review process. It's fine to think Apple should do things differently, or to suggest that they should be better about not rejecting apps for stupid reasons. It's even fine to leave the platform if it's not meeting your needs, or if you just want to move on to something new. But leaving a platform as a way of making a public statement about that plaform while simultaneously continuing to work for a company whose platform has similar, but even more oppressive and restrictive rules doesn't seem entirely fair to me.