For a lot of "professional" developers cross platform currently isn't a big issue. I have never been required to support any platforms other then Windows. I anticipate this changing in the medium term future as mobile platforms proliferate.
From the point of view of someone who earns their crusts from Window's development the best thing Java did was spur Microsoft into action to create a much better develpoment environment. I don't know if they would have created it anyway but regardless I think
a lot of the Java learnings were leveraged.
What puzzles me a bit is the more open philospohy around .Net? Once mono ports .Net to Linux then in some cases Windows will lose its appeal. If Microsoft's thinking is that they'll create and guide a semi-open standard (like Sun and Java) and bank on the fact
that they will be able to compete and win on building platforms then I for one think its commendable. And risky, it's going to be hard to go past a free combo of Apache and Mono ahead of a relatively expensive one like Win2003. I can't fathom the business value
for Microsoft behind an open cross-platform .Net, although that could be part of the reason why I sit in a cube and not a glass paneled office with harbour views .
Relying on a closed environment, such as VB, to tie developers to a particular platform also probably explains the current fractures in the development community. Before .Net, as a developer you had to be for Windows, VB and ASP, or against it, Java. And since
Java was a superior programming environment (maybe not execution but definitely programming) it attracted developers who then had to justify their choice. The most convenient way to do this was to disparage Windows which didn't really embrace Java. The broad
generalisations are acknowledged.
.Net has appealed to developers (I don't have figures but I would bet there are more C# then VB6 projects in
sourceforge not to mention the significant numbers of Java to C# ports) and if it becomes a robust cross platfrom environment then anti-Windows arguments become redundant and we can hopefully reach a state where the best
tools for the job are chosen. Then we can get rid of platform and language religion, oh yeah and we can live together as one big happy software industry and talk about interesting things instead of "C# vs Java" and "Windows vs Linux".