Toast is right, you should code it in what you feel most comfortable in. All languages are very similar structurally with slightly different syntax.
Different languages do different things better. C is one of the fastest languages because code is compiled into machine code. This makes it difficult to port, and difficult to do networking because you have to worry about little and big endian. NET is interpreted, which makes it slower but it is pretty simple to learn and very powerful. Honestly, 'slower' isn't really an issue unless your making a 3d game it's not
that much slower. Since NET is interpreted it is also kinda portable
(it's still a ms product & mono is not that great)
Java is my language of choice. It's interpreted, open source, and truly multi-platform. The syntax is not as nice as .NET, but simpler than C. You also don't have to worry about little and big endian in Java, or most interpreted languages. It's roughly the same speed as .NET, and the java interpreter is installed on most systems.
I read a
good article arguing for dynamically typed languages as opposed to all aforementioned languages =).