I have been pondering over this for quite some time. Talked briefly with Simon Phipps at JavaOne about it, but there was never time enough to get into any detail.
So, here is my nightmare scenario. Tell me where my logic fails.
1. Sun open sources Java
2. Puts it on an open CVS/SVN server
3. Microsoft downloads it
4. Microsoft puts a new name onto the whole thing
5. Microsoft ships it with Windows Update, so that virtually everyone gets it
6. When it is installed on a Windows box it puts itself first on the path, so it takes over all calls to "java".
7. For each consecutive update to its released software, Microsoft tweaks it so it only runs on Windows
There are a few things of importance here:
a) Microsoft never calls it "Java", so it would never have to pass a compatibility test
b) Microsoft is faithful to the license put forth by Sun, i.e. they keep its source open to the public
Where is my logic wrong?