AppleInsider is reporting that Sun will make a Java available for the iPhone… following a report on InfoWorld where Eric Klein (VP of java marketing at Sun) was quoted on a number of details – mostly blather that rolled up to “If Apple ain’t gunna make a JVM for the iPhone, we will”.Â
That is a dramatic change from the past decade of Java on Apple products – where Sun has been releasing JVM’s and JDK’s for Linux and Win32, leaving Apple to following along with it’s own development effort. I can’t even really fathom why Sun didn’t make Java available on MacOS X, but they haven’t. And from someone that has been working with mostly Java technologies for the past 10 years, this lagging setup has been a real pain in the ass. Finally, Sun is stepping up and asserting that they’re going to make a JVM for the iPhone. I wonder if they’ll pick up doing a JVM for MacOS X too?
With the iPhone, the shoe is now on the other foot for the Sun/Apple relationship relating to Java – instead of Sun treating Apple as a second class citizen when it comes to Java, it’s the other way around. The anthropomorphic voice of Apple to Sun in my head says “You wanna see Java continue? Put up or shut up! It’s not doing us any damn good.”
Since I read and wrote about Daniel Steinberg‘s article “Java to the iPhone: Can you hear me now?” back in January, the idea that Java isn’t really happening on the Mac has just continued to resonate. There are really no java desktop applications (yes, I know you can prove me wrong – it’s a hasty generalization, but a reasonable sterotype). Where I mostly see Java being used on the Mac is with developers – folks coding with Eclipse and making Java server based code. And even then, it is typically being deployed (quite reasonably, I think) on Linux servers. The only real downside is that it’s getting damn tricky to enable those Mac based developers to continue to do that when there isn’t a released 1.6 JDK for the Mac. That isn’t a lot of pull from a customer base, and precious little incentive for Apple to continue developing Java for the Mac, let alone to spend the developer time to port it over to the iPhone and make even a subset of Java run there. Google’s Android hasn’t even gone with the J2ME standard. It is instead implementing the Dalvik runtime, which is reportedly more sane with memory usage and power consumption.
It doesn’t come as any surprise to me that Apple has taken the “Nope, no java here – ain’t worth the time” road. I suspect they are right. While it would potentially open up the market to more developers, the popularity of the iPhone makes me think that it may not even need those J2ME developers to see some world class amazing applications come available. Shoot – Apple Apple basically committed a denial of service attach on itself with the SDK announcement – interest in the SDK is clearly popular enough right now without needing to include J2ME in the game. The iPhone will draw it’s own crowd, and with it’s already significant market share in the 4th quarter of 2007, it’s got enough “go juice” that it really doesn’t need to do a whole lot of work enabling even more sandboxes. Shoot – most of the indie developers I know are looking at the iPhone SDK and either making something now, or starting to poke and see how hard it will be to port some of their desktop technologies into this platform. In a lot of respects, this is a whole new era for mobile development – desktop developers are serious about implementing something, and Apple’s providing the tools to enable it. And there are some damn fine Mac desktop application developers out there.
I expect that Sun is seeing this as a significant threat to the continuation of Java on mobile devices – more piling into the competition along with WinCE and Flash. Especially now that Sun has decided to compete with the Flash juggernaut with their own JavaFX, they’ve got to be sensitive about J2ME and the iPhone. With Klein asserting that Sun will be making a J2ME for the iPhone, I’ve got to wonder if the Google dudes aren’t crankin’ away at a Dalvik VM implementation for the iPhone as well.
Now that I’ve had a chance to read through the iPhone OS Programming Guide (hard to link directly to this document due to Apple’s continuing stupid and fundamentally shortsighted NDA setup – but it’s available at http://developer.apple.com/iphone/), I’ve got to wonder if a sandbox within a sandbox is really going to an efficient setup. That’s what a JVM would be, what Flash is, etc. While the iPhone supports some pretty serious compute power, I’m not sure that it is really quite up to par with supporting multiple VM sandboxes. I suspect that’s still in the laptop or desktop computer realm, and Moore’s law hasn’t yet enabled it at the size of an iPhone.