Monday, June 25, 2007

iPhone, J2ME And Vendor Lock-In

So the latest news is that the iPhone will feature YouTube. Not using Safari, Flash or J2ME, but as a non-portable iPhone app. That reminded me of the reason that Apple gave for not opening up the iPhone to third party developers:

"You don’t want your phone to be an open platform, You need it to work when you need it to work. Cingular doesn’t want to see their West Coast network go down because some application messed up."
Steve Jobs, Interview, January 2007
So why doesn't Apple include J2ME on the iPhone? Cingular already has millions of J2ME phones that have not brought down their network! Besides, consumers today do not download J2ME apps/games from the web - they buy them from the carrier decks. That translates into real revenue for the carriers. Why would any carrier say no to millions of dollars in revenue? Oh right, the reason why the iPhone does not include J2ME is:
"Java’s not worth building in. Nobody uses Java anymore. It’s this big heavyweight ball and chain."
Steve Jobs, Interview, January 2007
Really??? Let's look at the evidence, shall we?

  • All Tier-1 phone manufacturers support J2ME in a big way.
  • Most major carriers support J2ME in a big way.
  • RIM has completely embraced J2ME for their Blackberry.
  • Almost all Windows Mobile phones today come with J2ME pre-installed!
  • Palm, the last J2ME hold-out has finally licensed IBM's J9.
  • Microsoft, Yahoo and Google have released their mobile applications using J2ME.
  • J2ME being opensourced has ensured that every future Linux phone will ship with J2ME pre-installed.
  • Globally, and even in the land of BREW (US), more J2ME enabled phones are sold today than any other platform.
So what is the real story? For that we need to understand why J2ME is the dominant mobile platform today. J2ME's phenomenal success has been due it being an open platform from a neutral vendor (i.e. not Microsoft and not another Telecom company). Besides Sun, every major phone manufacturer (and carrier) is involved in J2ME's specifications. Anyone (and I really mean anyone) can write J2ME apps/games using the many free tools available. And (in theory at least) anyone can download these apps/games and run them on their phones. As BREW found out, it's really hard for a proprietary platform to compete against such an open platform. Vendors, developers, publishers, distributors and consumers tend to flock towards open technologies, creating a thriving marketplace. And even though the carriers are doing their best right now to control the J2ME marketplace, it's still in a hell of a lot better shape than any of the alternatives. So the real story, IMO, is that Apple looks at J2ME (and Flash for that matter) as a competitor to it's very closed and proprietary iPhone platform. Come to think of it, if the iPhone had J2ME, why would Google have become an iPhone partner?

I predict that Apple will go the BREW route: they will release an SDK, but you will need to pay big bucks to Apple to get your app/game certified so that it will even run on the iPhone. And consumers will only be able to buy these apps/games from iTunes. In the end, it's not about closing the iPhone for the consumer experience, or for the carriers - it's about proprietary vendor lock-in. When Microsoft does it, it's illegal, when Apple does it, it's cool??!!
** Updated to include iPhone image.