The iPad controversy
You’ve probably heard some of the noise about how riled up programmers are getting about the iPad (link1, link2, link3). The basic issue has to do with with the tension between hardware vendors and 3rd party developers. The developers want the platform to be open so that they can incorporate it into their development model. The hardware vendor needs the developers, but they want to lock them into the hardware, ensure that their platform has differentiating apps, get the developers to use the platform’s differentiating features. Oh, and they’d like to get a cut of the developer’s profits too. For gaming consoles, that cut is often enormous.
Apple stirred things up some more last week by inserting the following into the developer’s license agreement for the next version of the iPhone OS.
3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).
This is obviously aimed at things like Adobe’s new Flash Packager. Today they got the Scratch users all upset by pulling the Scratch player from the appstore. That’s obviously not unexpected, but it seems kind of mean to pick on the kids like this. As Michael Kölling said in the comments at the Computing Education Blog:
I think Scratch is collateral damage here.
A reminder. As Ben Fry points out here, this is not something new. Apple tried to do this when the Macintosh originally came out. You originally had to do your development with Apple’s tools. And the environment was different enough that it was very difficult to write anything which would run on the Mac and run on other platforms. To start with, you needed to write in MPW Pascal. Luckily things like Aztec C quickly appeared and it got out of Apple’s control.
Things are different this time though. The difference is that Apple now controls the distribution channel. In many ways, this is more like the hardware situation with the early Macintoshes. Some friends from school started Shiva. This was a company which built networking hardware for Macintoshes which was not approved by Apple. It was an interesting struggle because Apple had a lot of control of the hardware side of things. They didn’t document many of the interfaces, so there was a lot of reverse engineering involved.
It’ll be interesting to see how it all shake out this time around. I’m just glad I’m not sharecropping on the Apple farm right now.
Wired had a pretty good article on the appstore rejection of Scratch.