Tuesday, April 13, 2010

Steve Jobs and iPhone Developer Agreement Section 3.3.1

On reading Steve Jobs’s response on Section 3.3.1, there are two things that struck me:

First, like John Gruber, he doesn't seem to understand the implications of the new text in section 3.3.1. In particular, it says:

Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine...

This does not prohibit the use of cross-platform toolkits, which is what he seems to think it does. There are many cross platform toolkits that are written in C and C++. What it does prevent (as I mentioned in my post yesterday) is using other languages, something Jobs's argument completely ignores. That he wouldn't understand what the the text of this section actually means is pretty disturbing.

The other thing that struck me is his reason for wanting to keep cross-platform toolkits off of the iPhone OS. He's afraid that cross platform toolkits will make it easier to write apps that exist on both iPhone OS and competing platforms, and that if the same apps exist on other platforms people won't have a reason to purchase iPhone OS products. This suggests a lack of faith in the technology of the iPhone OS platform.

With the changes Apple has made to section 3.3.1 they are setting a very bad precedent. People have complained about the behavior of other platform owners in the past, including IBM, Microsoft, and the various game console manufacturers, for imposing all sorts of nasty restrictions on developers, but none of them have ever gone as far as to forbid the use of either toolkits or source-to-source translation. That Apple would do this suggests to me both a lack of respect for developers (and hence, a failure to understand that without third party developers a platform is basically worthless), and also a lack of faith in their own platform's merits.

posted Tuesday, April 13, 2010
  Anonymous Tracy on April 13, 2010
I'm not sure if he is afraid of ppl building apps for other competing platforms, because that already exists for many popular apps between iphone and android. I think it's more to do with ensuring consistent experience for the users of iphone app, as using same language makes it easy for o/s platform executing code in a consistent manner.  
  Anonymous Anonymous on August 07, 2010