Yesterday, Apple announced their new tablet device, the iPad. Even if you are able to step back from all of the hype and reality distortion field surrounding the announcement, it is still an impressive device, once which I would love to get my hands on.
However, as a developer and Mac user, I am increasingly concerned with Apple's movement toward creating a locked down, and closed ecosystem and platform. A platform where Apple controls which applications developers can deploy, and which applications and content users can consume.
And yes, Flash is currently one of the casualties of Apple's control over the platform, but that is not why I am posting this. Apple already has a history of removing or preventing competitive (and non-competitive) applications from being distributed on the iPhone / iTouch. There is no reason not to expect that as the scope of functionality and applications that Apple creates expands, so will the number (and type) of third party applications that Apple will prevent from running on their platforms.
Don't get me wrong. I love Apple's operating system and hardware. I really enjoy building content for it with Cocoa, and am drooling to get some of my existing iPhone and desktop apps (Timetrocity, WoWTCG Utility, AS3 Reference Guide, Shortboard) running on the iPad. But, I am concerned about Apple expanding its control over the platform into new classes of devices. First Apple released the iPhone, with a locked down ecosystem. People seems to accept this, because the device was so revolutionary, and traditionally, mobile devices were already locked down platforms. However, with the release of the iPad, they are now expanding this model up the chain. I am pretty confident that if Apple felt they could get away with moving their desktop operating system to the closed / locked down model that they have been successful with on the iPhone, they would do it in a heart beat. Moving to such a model allows Apple to monetize content they could not directly monetize before, as well as lock out competitors. As a Mac user, and developer who does Cocoa development, that is not something I want to see.
Now, this is where someone is going to step in and say that Apple does it to control the experience, and ensure that there is only quality content available for the user. I think that is incredibly naive. Apple has shown that if crappy experiences and / or quality makes them money, they have no problem allowing it (there are tons of crappy, low quality apps on the app store). In addition, I do not want nor need Apple to decide for me what apps I can or cannot use.
What really surprises me though, is how the "open web" people are embracing this, especially as it relates to Flash. I am not sure if they are just being shortsighted, or are somehow kidding themselves because the iPhone includes a browser and is thus supporting the "open web". Apple is not supporting the "open web". In fact, they are doing the exact opposite by creating a platform which only allows a single browser (mobile Safari). Want to use Firefox or Opera on your iPhone? Tough. What about the iPad? Nope. Who knows, maybe next year, you wont be able to choose your browser (without Apple's blessing) on the desktop. Does anyone doubt that Apple would not create a locked down desktop platform if they felt they could get away with it?
In addition, once HTML 5 is adopted widely enough to where developers can create applications, games and content as rich as native iPhone / iPad apps, does anyone think that Apple won't make moves to cripple or restrict such content? Why pay $3.99 for a game on the app store when you can have the same game and experience for free in a web browser. Apple is not going to allow developers to circumvent the app store and cut them out of the revenue chain for that content. (Personally, I believe this is why Apple has not allowed Flash on the iPhone, but that is a post for another day).
Now, I completely understand WHY Apple is doing this. It makes great business sense for them (at least in the short to medium term). They get to sell a lot of hardware, control the experience, prevent competition, and monetize and control all of the content deployed to their platform. It also allows them to move into new markets, and monetize third party content they were not able to monetize before (music, videos, apps, books). I also understand HOW Apple has been able to do this. They have created an amazing platform, which provides not only the best hardware, and software experience, but the best combination of the two.
I love my Mac, I love OS X and I love developing with Cocoa. What I don't love is the prospect of having Apple being the gatekeeper and arbiter of what software I develop and run on my own computers and devices. While I do have a vested interest in seeing Flash be able to run on the device, it is just one of many examples of software that Apple has prevented from running on their platform. Apple is creating a locked down ecosystem where they, and only they, control what content is able to be deployed on the device. They are actively expanding this locked down ecosystem to a wider range of devices and hardware. That is something that is not good for developers, is not good for users, and it not good for the web. Indeed, ultimately, it is only good for Apple.
As a Mac user and developer, this is a trend that concerns me.