The iPad and what it means for Java

In my last post, I made a little joke about the closing of the Sun-Oracle deal being overshadowed by Apple's big iPad announcement. The folks at Oracle would almost certainly have preferred that their deal closed perhaps a few days earlier or later, so they wouldn't have to compete with the Apple marketing juggernaut. The two presentations were aimed at wildly different audiences; but still, there were important (and possibly troubling) hints at Java's future hidden in Apple's messaging.

First, let's consider the biggest knock against the iPad: that's it's just a "big iPod Touch." One of the big knocks on the iPad and iPhone is that they don't support Flash, but of course, they don't support Java either, and for the same reason -- there will be no runtimes on iPhone OS devices, period. This means that the only Java apps making their way to the iPhone will be those whose code has been converted via XMLVM or the like. The Java community seems to have gotten past its initial desperate hopes that the iPhone OS would support Java someday and have settled into sullen acquiescence; presumably, they will join the rising time of tech commentary deriding the iPad's hopes.

Believe it or not, I'm on the record as also deriding those hopes, though I don't think the absence of Java (or Flash) is going to turn out to be a big motivating factor. Developers have an exaggerated view of the importance of their favorite tools to the success and failure of various platforms, particularly those aimed at consumers. But the success or failure of the iPad as a device is in some ways besides the point. As folks like Steven Frank and John Gruber have opined, the iPad shows that Apple, at least, sees the future of general-interest computing in platforms that abstract nearly all of what we think of as the typical complexity of using a computer away from the user.

Part of abstracting that complexity away involves ditching things like Flash runtimes and Java VMs. Google is a major mover behind this movement as well, with their Chrome OS project whose UI will consist solely of a browser window. While Google tend to be more agnostic about plugins, they're moving in parallel with Apple on a push to use JavaScript and HTML 5 for in-browser media and functionality that once would be the province of something like Java.

So Java ME (not counting the nonstandard KVM that underlies Android) has essentially been locked out of the emerging smartphone market, being restricted to the second-tier "feature phone" market that doesn't have a long-term future. And if this new model of computing takes hold, Java may be forever banished from the desktop (or the future's desktop equivalents) as well. Which leaves the server, which is probably never going to be made a slick, locked down appliance -- or if it is, it will be one built by Oracle with Java at its core. It's not a terrible future for the platform, but it is one that's a lot more limited than the initial vision for it.