Anyone leaving Java because of Oracle is not going to .Net.
> The C# developers I know really do seem to enjoy the language and associated tooling, and it's very well established in the enterprise.
Doesn't matter. If you are leaving Java because of Oracle, then you don't care about the tooling. Moving to .Net will just move you to another vendor those guys have spendt the last years moving away from.
After all, like professor Wirth once said, P. T. Barnum was right. It's not reasonable to bet your company on the premise either Microsoft or Oracle will have a sudden change of mind and start playing by the rules.
It's not reasonable to bet a dollar on that ludicrous idea.
> Anyone leaving Java because of Oracle is not going to .Net.
I agree that folks who abandon Java because of Oracle's presence are unlikely to embrace Microsoft, but that doesn't mean that .Net won't continue to erode Java's market share.
Specifically, consider the many shops that employ both Java and .Net. In those environments, I could see .Net's adoption accelerating due to the perception of strife within the Java community: James Gosling and Tim Bray both leaving Oracle, Jonathan Schwartz pitching litigation over Java patents as a revenue stream, the subsequent lawsuit against Google, the OpenSolaris and OpenOffice.org votes of no confidence and subsequent forks, Apache attempting to throw a wrench into the JCP... that's not the picture of a healthy ecosystem.
So it's not that the enterprises will see Oracle and flee, but that they'll see the turmoil and litigation, reason that C# and Java are similar enough, and opt for the more peaceful of the two, at least for new development.
As for LLVM, I have had the same thought and I think you are on to something, I keep thinking whatever it is, it will crop up on LLVM.
Unless you are a big enough company to be able to roll your own infrastructure tools to make use of linux's advantages or have very significant scale requirements the cost difference is unlikely to be huge (much of the cost will be operations labor anyway) and the service and support backing of MS is a significant boon in the enterprise world.
LLVM and Javascript are contenders but they aren't platforms yet, although I think they will see a ton of use in web apps and web services, especially outside the enterprise.
Java is under a two-pronged attack. LLVM is quickly becoming the preferred target platform. The harder Oracle is to work with the harder it will be for new languages to target the JVM.
Also Java's niche is getting squeezed from both ends. Python, Ruby, and Javascript can do more of what Java does with less hassle. Languages like Go and Rust are bridging the divide from C/C++ to Java also. Both languages have a nice mix of good performance, predictable performance, high-level semantics, and concurrency.
At the same time, alternative languages (Python, Ruby, etc.) are becoming more and more capable, and are slowly eroding the class of problems that need "enterprise-grade" solutions. Furthermore, virtualization, as well as tools like Chef, Puppet, Capistrano, Virtualenv, and RVM are making great strides at simplifying the deployment and management of "native" solutions.
Taken together, I think you'll see huge gains by smaller languages in the areas traditionally served by Java and .Net.
But if I had to pick a dark horse or two, I'd look to LLVM and JavaScript. There's huge amount of momentum and money behind LLVM, and I could easily see it becoming the next major target platform for experimental languages. Similarly, the recent JavaScript arms race has left us with at least four extremely high-performance JavaScript runtimes, and it's quickly becoming the lingua franca of the web. There have been many attempts to harness that talent and apply it to more general application development: Apple's Dashboard, Palm's WebOS, Node.JS, Appcelerator Titanium. Others initiatives are trying to pull general application development into the web dev world: Sproutcore, 280 North's Cappuccino, etc. Eventually, someone is going to strike the right balance, and JavaScript's importance and influence will skyrocket.
Other things that may spawn something really cool: Parrot, Go.