BusinessWeek ran an article yesterday speculating that Apple will open the iPhone to native applications by releasing a software development kit (SDK) in early 2008:
Sources familiar with the company's plans tell BusinessWeek.com that Apple will release a software-development kit for the iPhone in early 2008, enabling programmers to create games, business-productivity tools, and countless other applications for the device. Few details are known, but sources say an announcement will come in January, which suggests it may be slated for Jan. 15, when Chief Executive Officer Steve Jobs takes the stage at the Macworld Expo in San Francisco.
Through unsupported clever hacks it's already possible to run apps on the iPhone (among other things) but up to now Apple has been reluctant to let anything other than web based applications run there. Meanwhile there's a persistent rumor that Google may be coming out with a reference implementation of a Linux-based open phone (nicknamed the "gPhone") and has already lined up Taiwanese manufacturer HTC to make 50K units to seed developers. (Hey Google, if you're reading this, drop me a line and I'll be happy to send you my mailing address so I can get one :) ). It's probably not coincidence that the open iPhone story came out the same day as the HTC/gPhone story. It would be smart for Apple to hedge their bets in case their current strategy of no-native-apps doesn't pay off.
While the iPhone SDK and the gPhone are just rumors at this point (some would say, wishful thinking), it's clear that the days of locked down and tightly controlled mobile devices are numbered. The OpenMoko project has been blazing this trail since last November with its open Linux-based phone design. Sun's JavaFX Mobile project is another take on the idea that uses a GPL software stack on top of a low-level OS (which might be Linux).
Operating system importance fades
Despite years of promises and predictions, Linux has yet to "take over" the desktop. Phones are different though. Most users just want to do simple things with their phones, for example, to make phone calls, send instant messages, and maybe do a little web browsing or listen to songs. They also want the phones to be super cheap, if not free. You don't need Microsoft Windows CE, or Mac OSX, or even PalmOS to do that. A small Linux kernel with some extensible services built on top of it will do just fine. It doesn't hurt that a manufacturer can put Linux in their phone without paying a license fee either.
Key to success
I think application portability is going to be key for the success of the open phone. That's why the Java, .NET, Flash, and Ajax platforms are so attractive for these devices. Write once, run anywhere will encourage entepreneurs to create hundreds, if not thousands of apps for open phones if there there could be a standard API and binary distribution format for them to use. Otherwise, the temptation is to wait to see which platform will "win", which usually ends up meaning they don't do the app at all, or that only big players who can afford multiple ports will do the apps.
Three paths to the future
Given the human tendency to disagree I don't think you'll see "one" standard emerge. However these three paths look most promising for the future:
- Linux x86. The venerable x86 architecture has already taken over the desktop and server markets so why not mobile? Using a common instruction set makes it that much easier for developers to port, compile, and debug their code. Currently ARM is a de-facto standard in phones but I have a feeling x86 will win out in the end.
- Pure Java. Combine a full Java stack under a free license with a common binary format (bytecodes) and a common API (Java SE, or Java ME Personal profile perhaps?) and you have a compelling platform. Java ME and BD-J (the Java runtime on Blu-Ray disks) have proved this is practical though not as painless as it should be. The addition of vector graphics and good multimedia support is a must.
I predict hardware manufacturers will probably go for the common denominator of all these platforms (small x86-based device with a thin Linux layer that can run native apps, apps in a browser, or a Java stack) so they won't care who wins. Users won't care either as long as they get their cheap phones. Ultimately only the developers will care, because we're the ones that have to make all this work together.
[ Update: That didn't take long. ]