In a distributed system communicating through sockets with a common binary protocol, all languages are possible. The question then should be rephrased, what is the best languge for:
a: FIX/etc connections
b: Feed handlers
c: OrderManagerClient
d: OrderManagerServer
e: Business Logic
f: Trading Logic
g: Risk Manager
I claim that perhaps C/C++ is the only thing that might be certain for #a (or specialized hardware), but as your progress up the software stack, just about any language is possible.
For example, it is nearly certain that something like R is best for g. However, I would bet that Haskell or Scala, or my favorite, Prolog are best for #f, if the trading logic is anything but arbitrage. C#, Ruby, Python all great languages. Anything that supports building a DSL (to build a container vector language) is a great choice here. R is a great vector language. Extreme low latency trading systems probably require C or assembler, or perhaps no traditional programming language at all and something like Verilog!