trump cards up the big boy's sleeves:
MS and IBM both have huge trump cards that they could play that would cause big ripples. here they are:
MS: aggressively release the CLR, .NET framework, and .NET languages for *all* major operating systems. the UI parts probably wouldn't be ported, since their target would be server-side systems, but all the rest would be ported (including the SOAP stack, web server, transactions, etc.). they could charge for this software, just like they charge for windows, and make sure that the windows version is optimized to run better than the other platforms. this effectively neutralizes one of java's remaining differentiators, which is its portability. microsoft's mantra would become "develop on windows, deploy everywhere".
IBM: release an open-source CLR, open-source compilers for both Java and C# that target the CLR with compilers for eclipse, and an open-source framework that is different from microsoft's. this neutralizes microsoft's ability to corner the marketplace for CLR-based infrastructure, and is consistent with IBM's direction of open-sourcing stuff to engage the community to combat microsoft. it also frees IBM to innovate in the language arena and accelerate the development of alternative frameworks that are better than those in the J2EE stack.
my guess is that both trump cards will be played sometime during the next six months. what do you think?