IOWA...
Well,Sun is the steward of Java. As far back as 2007, Google pretty much gave Sun the middle finger; thinking they can lead the direction of Java. This dispute has been well documented. Sun wasn't the type to pursue litigation. Oracle, on the other hand, has every reason to do so as the new owner.
This was their "FU" middle finger salute response in 2007.
"Google and the other members of the Open Handset Alliance are working to help solve fragmentation and supporting the developer community by creating Android, a mobile platform that responds to the needs of the developers, has the backing of industry leaders, and will be available as open source under a nonrestrictive license," Google said in a statement.
Source:
Sun's worried that Google Android could fracture Java | Underexposed - CNET News
This goes against their "Do no evil Mantra" They totally sidestepped the licensing of the JVM for handsets. Java is open source but not the JVM.
Here is another article from way as far back as 2007,
Dalvik - Google's tweaked, non-standard JVM for Android!!!! - O'Reilly ONJava Blog
Google’s Android software for Open Handset Alliance raises eyebrows of every Java developer because of its non-standards. Instead of supporting the Sun’s open source efforts on Java, Google went in a different direction and came up with its own JVM named Dalvik which executes Java programs on Android phones. It is neither Java SE, nor Java ME.
We have enough problems with Java mobile development already.
Not all phones support all the same Java standards, so there is no guarantee that the same software will run on multiple devices, as the “write once, run anywhere” Java tagline promises. Now Android is going to create more problems than solving. With this, programmers will have a new breed of Java to develop mobile applications, those cannot be ported to any device except Android powered phones. We already have enough versions(standards) of Java, why do we need another one?.
I don’t think any Java developer is interested in developing the applications in non-standard version, unless you want to win the 10 million dollar prize? It sounds like Google is trying to bribe the Java developers to adopt this non-standard Java with 10 million dollar prize. Well, may be its another Google’s don’t be evil policy -
Pretty much, Google wanted to fracture Java and go about in their own direction.
Bottom and short line:
When Sun GPL Java, they only did it for the standard version. The mobile version requires every mobile device to be licensed w/ Java ME
Nokia paid, so did others. I remember Toshiba paying for Java ME license. Google didn't want to pay. They
wanted to use standard JVM. The problem is standard JVM doesn't allow any company to fork it (original Microsoft lawsuit).
Each JVM needs to pass a certain testing kit and behave like Sun's JVM.So instead of settling for the standard JVM, or license the ME, Google decided to create their own JVM. Only it is not a JVM, rather a superset of it.
Then when Android launch, remember that 10 million prize. Sure sounds like a bribe to me.
Again, going against the "Do no evil policy" If you care to google some of the Java Me mailing lists, the "bribe" mantra has been discussed many times but Java developers in 2007. I never saw that coming and now it sort of makes sense.
If you care to google and search. The discontent among many developers, Sun, and analysts go way as far back as 2007. So there is definitely a trail of discontent.
Again, this was talked about way back in 2007.
Google and Sun may butt heads over Android | ITworld
Instead of using the standards-based Java Micro Edition (JME) 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 Gottipatti, 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.
Here are some comments I made on another post....
Well, I read some more of this and this blog post from 2007, yes, 2007, explains why Oracle has a solid case:
Stefano’s Linotype Dalvik: how Google routed around Sun’s IP-based licensing restrictions on Java ME
Today Google released the Android code and I took a serious look at its internals… and found the solution for the licensing problem. It’s called Dalvik and it’s the new name of Sun’s worst nightmares.
Dalvik is a virtual machine, just like Java’s or .NET’s, but it’s Google’s own and they’re making it open source without having to ask permission to anyone (well, for now, in the future expect a shit-load of IP-related lawsuits on this, especially since Sun and Microsoft signed a cross-IP licensing agreement on exactly such virtual machines technologies years ago… but don’t forget IBM who has been writing emulation code for mainframes since the beginning of time).
But Android’s programs are written in Java, using Java-oriented IDEs (it also comes with an Eclipse plugin)… it just doesn’t compile the java code into java bytecode but (ops, Sun didn’t see this one coming) into Dalvik bytecode.
So, Android uses the syntax of the Java platform (the Java “language”, if you wish, which is enough to make java programmers feel at home and IDEs to support the editing smoothly) and the java SE class library but not the Java bytecode or the Java virtual machine to execute it on the phone (and, note, Android’s implementation of the Java SE class library is, indeed, Apache Harmony’s!)
The trick is that Google doesn’t claim that Android is a Java platform, although it can run some programs written with the Java language and against some derived version of the Java class library. Sun could prevent this if they had a patent on the standard class library, but they don’t and, even if they did, I strongly doubt it would be enforceable since Android doesn’t claim to be compatible (and in fact, could very well claim that their subset/superset is an innovation on the existing patent and challenge Sun’s position).
I also read this comment on another blog:
Apparently you still need to license mobile JVMs from Sun (and now Oracle) and what Google did was completely get around the licensing by claiming that they don't have a JVM, they have DALVIK VM, which isn't Java compatible, so it isn't really a Java platform.
In essence "Do no Evil" Google, tried to game their way around the license requirements. The fight has been going on behind the scene long before Oracle bought Sun. Now Oracle is suing with anything they can. to try to re-establish control over Java.
Have in mind, all these quotes are from 2007 and not some post-litigation August 2010 articles.