Apple wants to be the new Microsoft. It wants you to buy applications
that run locally on your
computer
iPad, and it sees its competitive advantage as having the most
developers and the most applications (hence all those “there’s an app
for that” ads). As Microsoft showed, if you can get a lead and become
the developers’ platform of choice, you can benefit from network
effects. ...
In April, Apple
changed the terms of the iPhone developer agreement
to prevent developers from using cross-compilers to create iPhone apps.
A cross-compiler is a tool that allows you to take an application you
wrote for one platform, push a button, and repackage the application for
another platform (in this case, iPhone OS). The immediate target of
this was Adobe, which was developing a tool that would enable developers
to take Flash apps, push a button, and make them into iPhone apps. This
simplest explanation for this is that Apple, as the market leader,
wants to make it
harder for people to develop for multiple
platforms at the same time. “Write once, run anywhere” — the slogan of
Java, but also the essence of developing for the web — is
bad
for Apple, and they want to make it as hard as possible. (
John Gruber makes a different argument that Apple
wants control over their platform and doesn’t want cross-compilers
between it and the developers, but that interpretation is not
inconsistent with mine.) In other words, if you’re number one, then
openness just helps the competition, because if developers have to
choose just one platform, they’re going to choose yours.
So Apple is competitive; we knew that already. And they don’t want to
repeat the mistakes of the 1980s and 1990s; we knew that already, too.
But I think the important point is that they are promoting a model of
personal computing where most of the developers write for the iPhone OS,
and if you want to use their applications you have to buy an Apple
hardware product.