I wasn't aware it was a battle. I use the language that: 1) I'm most familiar with 2) Meets my performance requirements 3) Has readily available API support for my broker 4) Has a large open source code base for my convenience Several languages meet criteria 3 and 4. Criteria 1 and 2 are up to the individual.
Isn't Java that thing that constantly and annoyingly asks for updates and tries to install the Ask-Toolbar?
Windows is no where near a realtime OS so if you have to ask, that rules out C#. I would recommend Java for development / backtesting and depending on what you're doing, move to C++ if you need more performance.