Google could be heading for a showdown with Sun over the way Android, Google's new mobile phone software platform, handles Java.
Instead of using the standards-based JME (Java Micro Edition) as an engine to run Java applications, Google wrote its own virtual machine for Android, calling it Dalvik. There are technical advantages and disadvantages to using Dalvik, developers say, but technology may not have been the driver for Google.
Google most likely built Dalvik as a way to get around licensing issues with Sun that would have come with using JME, said Stefano Mazzocchi, a developer and board member at Apache Labs.
Phone makers that incorporate JME into their phones must license the technology from Sun if they intend to make any modifications to it, Mazzocchi said. A phone maker could freely use JME under an open-source license if it shares innovations to the software with the community, but most large handset makers are reluctant to do that, he said.
Rather than require phone makers to license JME as part of Android, Mazzocchi said, Google built its own virtual machine. Dalvik converts Java bytecodes into Dalvik bytecodes.
"So Google can say Dalvik is not a Java platform," said Hari Gottipati, a mobile developer who also has been examining the issue.
Google declined to comment on Dalvik.
"I believe Sun didn't see this coming," Mazzocchi said. "I think this was a very smart and clever move."
Still, Google could run into trouble. If Google used any of Sun's intellectual property to build Dalvik, Sun could sue Google for patent infringement, Mazzocchi said. "I'd be very curious to see what Sun would do," he said. That's because Sun is a staunch advocate for open source, so it would hardly appease the open-source community to sue Google over an open-source software stack.
However, Google's move threatens Sun's business strategy, Mazzocchi said. He believes that Sun sees a bright future in the mobile market and hopes to earn revenue off the use of the Java virtual machine by phone makers. Google's plan diminishes that opportunity for Sun.
While Sun declined to comment directly for this story, it pointed to some public statements from company executives. Jonathan Schwartz, president and CEO of Sun, wrote a blog post congratulating Google on the day of Android's launch. Notably, he refers to Android as a "Java/Linux" platform. By contrast, Google carefully appears to avoid calling Android a Java platform. Google describes the Android software development kit as a set of tools that lets developers create applications using Java.
Sun also shared statements that Rich Green, executive vice president of software at Sun, made during Oracle Open World this week about Android. "We're reaching out to Google and are anticipating they will be reaching out to us to ensure the software and APIs will be compatible so deployment on a wide variety of platforms will be possible," he said.
Green also said that Sun wants to work with Google to prevent creating a fractured mobile development environment.
That's a concern for other mobile developers like Gottipati. The mobile environment is already fractured. Even with JME, he has to alter his applications for different phones. "But in that case, as a developer, I'm porting once and maybe tweaking for different phones," he said. "But with this, you'll need to develop a separate application that's not standard. Unless Android becomes mainstream and kills J2ME ... why should I develop applications that are not standard which I'm not sure about because I haven't seen any commercial handsets yet?"
Gottipati believes that the technical differences in Dalvik were the main driver for Google, not the licensing issue. The license fee that handset makers must pay for JME is very nominal, he said. He thinks that if Google asked, Sun would have included JME in Android and waived the licensing fee.