The third question has several unsatisfying answers. Developers can write to the Java 1.0.1 specification, which both Microsoft and other vendors support. They can carefully try to sort through the incompatibilities of the competing SDKs and APIs and try to develop cross-platform code that is somewhat more sophisticated. Finally, they can try to pick a winner and write to that specification. These are all difficult choices.
Most developers seem to be treading the middle path.
Simply that Microsoft is executing what has always been a successful strategy. The difference this time is that its very success leaves it open to charges of monopolistic practices and increasing scrutiny by the U.S. government and the governments of other countries. That is for the courts to decide. Jim Barksdale clearly has an opinion. In a theatrical flourish before the Senate hearings, he turned to the audience and asked anyone who used a personal computer to raise his or her hand.