There are a few things to note here:
- Sun never managed to capture the mobile market due to their inept J2ME platform which wasn't usable for anything and which never represented a single target with its gazillion divergent implementations. J2ME did more harm than good.
- The mobile market is both bigger than the desktop market and it is still a long way from being anywhere near the saturation point. The mobile device is believed to be the computing platform of choice for emerging markets, and the cost of devices is plummeting. Thus, any argument that smart phones are "too expensive" is at best misguided. These are not phones. They are primarily mobile computers.
I've never really understood why Microsoft would hamper their efforts by limiting themselves to Windows. Really, it never made sense to me.
Microsoft now have a unique opportunity to end the experiment that was .NET with severely limited portability and go after the same scope that Java has: be everywhere. They also have the opportunity to make some adjustments to the stewardship of .NET, to make it safe for others to build on.
If Microsoft were to remove any doubts around their .NET platform, aggressively push interoperability and openness, and work with the developer community on ever better terms than Sun did before Oracle bought them, Microsoft could end up making Java irrelevant. Microsoft have thus far lost the battle for the operating system on mobile devices and I am not sure they will ever produce a decent OS for mobile devices. But their development platforms could still play a role if Microsoft are smart enough to realize what it takes.
The actions of Oracle does not only affect Google. It affects the entire Java community. Oracle has, in one blow, devalued the entire Java platform by injecting a generous helping of FUD, and alienated everyone who could have helped Oracle go for a vastly bigger, ongoing payoff further down the line.
I can't believe I am saying this, but then again, I had no idea Oracle were going to go nuclear on themselves and effectively cast the entire future of Java into doubt.