I've been using C/C++ for two decades, doing trading systems last decade, high-frequency trading systems for the last 5 years for different shops and lately for myself. I have enough knowledge in C# and Java to stay away from them in the subj, i.e. real-time data processing. Waste of time... I know a lot of guys that wrote pieces of trading systems in Java now spending useless time trying to tweak the garbage collector to avoid multi-second pauses during market-data bursts in the middle of the day. Get real, make it once, and make it right.
Most firms use a combination of them. More C++ / Unix as it gets closer to the core infrastructure. More Java / Win as it gets closer to the front end. Unless they're a small operation firm without a decent Infrastructure IT team, you won't see a single language/platform system. Each required components are optimized to do its task.