Even if they did Microsoft has it's only patent arsenal. You only bring a patent suit if the IP retaliation isn't equally damaging. I think this has more to do with Oracle seeing Google's cloud as a competitor to Oracle's cloud. If they depended on Oracle you can bet this would be a non issue.
Once bitten, twice shy -- and so I highly doubt that Google would switch from Java to .NET. It will be supported through MonoDroid, but Google itself will no doubt already be working on support for a different language that does not have the same risks as Java, .NET, etc.
The problem is the VM, not the language. Simply switching languages won't make a difference to the legal case if the underlying VM still infringes on the patents.
Microsoft is not interested in opening .NET to other platforms than Windows because they see .NET as driving developers to using Windows and Visual Studio. "While you're here, try some Office Suite." MS uses their freeware offerings to increase demand for their payware offerings.
But .NET is seen at present as a rather dead-end, closed ecosystem. Much of what's innovative in software development happens elsewhere -- e.g. Ruby on Rails, or Clojure. If MS had a way of getting all the developer mindset that's no other platforms, such as Java, onto C#/CLR/.NET, this would be a big win for them.
A Microsoft-blessed implementation of .NET running on Linux and other platforms might give them that developer mindshare. I would certainly consider using it very seriously.
In the past, Microsoft has seen Linux and open source as the potential big enemy that might kill it. But I don't think that's true: I think Apple is a bigger threat to MS (they certainly have a bigger market capitalisation). If .NET ran on Linux, would that really hurt sales of Windows, Office and Xbox? I doubt it.
While Ballmer probably wouldn't go for this, I wouldn't be surprised if he was deposed and his successor does.
I don't really get where you're coming up with ".NET is seen as a rather dead-end ecosystem."
Perhaps in the Ruby community, the image of .NET is equivalent to the image of MS, but the people who make up the Ruby community were probably never going to use .NET to begin with. There is a very large development community outside of RoR and Clojure and Python and what have you that has very little overlap.
The Ruby/Python/PHP/etc. development communities coincide a lot. They have UNIX-like operating systems in common. They have certain shared values of what software development means to the human condition. Hell, they think about what software development means to the human condition. It's very future-centric.
In the Windows world, it's different. We think about things in terms of the present: what are we doing now, how does this fill my belly, how am I going to fulfill this client request so I can go home and play with my kids. We don't tend to participate in open source projects. Most of the time, it's weird to have someone ask to see my source code. Seeing the source code is a waste of time when all I want is the functionality. There is not much thought to future developers because future developers are likely not going to ever look at what we've made. Even if they did, they're more likely to throw it away and start over than to do anything with it.
I don't think there is an inherent "betterness" to one approach over the other. To me, it's the difference between a sculpture and a building contractor. A project manager with no technical background working at a bank is a comical character to the auteur, to the contractor he or she is a real person (maybe even a close friend) with a need.
But because of these differences, there is shockingly little overlap between the communities. I'm reminded of this any time I hang out with my friends at my local hackerspace. There are a few of us who are Windows developers who can work together very productively. There are others of us who are Linux developers and they can work together very productively. When the two try to mix at all, the minority group on the project invariably look like idiots, lost children, who haven't the experience they claim to have. The problem is the complete mindset disconnect.
I think that's where a lot of these "X is dead, long live Y" come from. When you are steeped in your development culture of choice, you hear nothing from "the others", and can very easily assume they must be dead.
> I don't really get where you're coming up with ".NET is seen as a rather dead-end ecosystem."
Say if I was writing a compiler for a new language I'm designing. Would I consider targetting .NET? No I wouldn't because it locks me in to Microsoft, and will only continue to be available at the whim of Microsoft (consider they canned VB6 when it was one of their most popular languages to replace ith with VB .NET). Now if I was to target my compiler on a platform that runs on lots of OSes, is open-source, etc, then it's more likely to be future-proof. Or say I was writing a web app framework like Rails or Django. I might want it to run on Windows, but I would certainly also want it to run on Unix-like systems such as Linux and MacOS.
The impression I get is that that is the main reason why there is less innovation in the Microsoft platform than outside it (e.g. Python, Ruby, Rails, Django, Clojure, Groovy, etc), despite Windows running on most computers. Many good programmers think Windows is simply irrelevant. E.g. PG says:
"I'm now surprised when I come across a computer running Windows. Nearly all the people we fund at Y Combinator use Apple laptops. It was the same in the audience at startup school. All the computer people use Macs or Linux now." -- http://www.paulgraham.com/microsoft.html
All programs are written by programmers, and if enough programmers think a platform is irrelevant, it becomes so.
Now if Oracle is going to get nasty with what's now their Java platform, that's an opportunity for Microsoft if they want to take it. I've never coded in C# but from what I've read of it, it's a better language than Java and I suspect many Linux programmers would consider using it.
Microsoft is still trying to fight their old war against Linux. They've won that war on the client (but not on the server), but in the mean time, they are losing to Apple.
Which is a strategic move to A) get people to view MS as friendly to open source, and B) get people yearning for Visual Studio. Without Visual Studio, .NET is kind of a pain in the ass to develop. Not as bad as Java without Eclipse, but not anywhere near simple enough to be productive with substandard editors. Visual Studio makes .NET. Mono is intended to introduce people to the features that .NET provides and entice them into trying it where it shines, in Visual Studio, which runs around $500 a copy, which only runs on Windows.
I think you have it backwards. MS courts developers to make Windows seem like a desirable platform. Courting developers includes building wickedly good developer tools, but they tend to give them away. The Express editions are free, they give out full Pro versions at most events, etc.
The point, though, is that you said "MS is not interested in opening .NET to other platforms" when they demonstrably are. That doesn't mean they're angelic do gooders, or that they don't want to make money, or anything else. It simply means that they are interested in having .NET on other platforms because it somehow suits their purposes.
The strategy with Silverlight is to concede that the client tier is multi-platform, and try to sell back end servers and developer licences instead.
This doesn't completely fit MS's other initiatives, but one of the benefits of being that big is that MS can try lots of things at once - to bet on every horse in the race, so to speak.
Although it is great that they are funding Mono and distributing silverlight on other platforms, I hardly think this is for altruistic purposes. They have a history of strongly pushing people towards their OS and platform and then ending support for third party tools (e.g. IE on Mac). I think moving towards something utilizing the power of HTML 5 and Javascript is the way to go long term.
Certainly not Objective-C. There is a reason Objective-C is really only a viable option on the Mac platforms, and that is the heritage of NeXTSTEP that Jobs brought with him when he came back to Apple.
I agree with you on objective-c. As for HTML5, V8 installed on a phone + installable javascript apps could fully replace the current dalvik java stuff. V8 extension could provide access to non standard stuff (calling api...) and html for interfaces would be simple.
Games in WebGL running natively on the phone would be cool, with the fileapi there is no need for servers around.
Personally, I think HTML5 is the wrong answer for the wrong problem. The problem is not "how do we make HTML+JavaScript work more like an application." The problem is also not "how do we make more application-like web pages." The problem is "how do we distribute application-like functionality over the web." That never had to mean making a new version of HTML. That never had to mean running inside the browser.
The folly of HTML5 is this incessant reliance on SGML and human-readability. In real-world, big-boy-pants development, we don't write HTML, HTML is our output format. We never needed a new HTML, we needed a new output format that worked. I don't think the WHATWG is up to the task, as evidenced by the complete lack of sane audio handling.
Microsofts patent portfolio probably is so wide that it could launch a lawsuit against Java implementations if it wishes so. So it's more of a question who you'd trust more, and who is more predictable, Oracle or Microsoft.