I hate java with a passion, it was a nice idea which failed. The whole point of java was portability, then they threw that out of the window when they started creating pJava, midp, j2me, (pick any four letters and add a j). On top of that the basic VM has a poor design. Hell the garbage collector has a known bug that means it is expected to crash every ten hours.
Having said that, I can code in Java.
I love C#, it has a garbage collection issue as well, but as long as you know about it and allow for it it's not a major issue. However I only use it for tool creation now. Never for serious game coding. I don't use Unity, probably never will. We met with the developers of Unity asking to port their stuff to our platform and they got all precious and said no. XNA is dead to me, the arrival of windows 8 and xna 4 killed it as far as I am concerned.
I work in c++ more than anything. It's what all the games coders I work with use, so I use it. It can be agony at times trying to work out what some little guy in a programming farm in China did in this block of code, then realising he's overridden + to do something else. You also have compiler compatability issues, things that are legal in visual studio but not in any other c++ compiler.
My favorite language to work in is Forth. Love it. Not a lot of cause for it though.
I also loved VP, but Elate/Intent is dead. I am probably the only person in the world who still has a working dev system.
The future is c#.... absolutely not. For one thing more and more cpu's are heading towards parallelism. Not something c# is good at. Hell one cpu that I have just been sent has 16 cores each with it's own block of memory and a very fast link to all other cores.
Write something meaningful on that in c#