Your arguments for picking one over the other, ie, the existence of Mono for C# meaning accessibility to non Windows, and being #1 in Sourceforge over C++ for Java have nothing to do with their intrinsic strengths or weaknesses. I would not frame the choice in those terms.
I hate mediocrity, and I mujst admit that C# and Linux are good peers in that regard. Java is only so slightly better in terms of tooling (as far as I know, there's no Eclipse for C# and everything microsoft visual-whatever-net sucks almost by definition).
In short, you're asking the wrong question. The better one: Should I pick Ruby, Smalltalk, Python, Lisp, PHP? Java and C# will suffer the fate of Ford's Model T: populare at one time, falling into oblivion the next day.
What will you be programming in 10 years from now? Odds are against both of them.
Your arguments for picking one over the other, ie, the existence of Mono for C# meaning accessibility to non Windows, and being #1 in Sourceforge over C++ for Java have nothing to do with their intrinsic strengths or weaknesses. I would not frame the choice in those terms.
I hate mediocrity, and I mujst admit that C# and Linux are good peers in that regard. Java is only so slightly better in terms of tooling (as far as I know, there's no Eclipse for C# and everything microsoft visual-whatever-net sucks almost by definition).
In short, you're asking the wrong question. The better one:
Should I pick Ruby, Smalltalk, Python, Lisp, PHP?
Java and C# will suffer the fate of Ford's Model T: populare at one time, falling into oblivion the next day.
What will you be programming in 10 years from now? Odds are against both of them.