Right. All those languages, c++, c#, vb.net, java are all nearly perfect tools at this time.
The problems are mostly on the implementation side. An infinity of small details arise when you dig in this area. Dealing with asynchronous events and orders, timeouts, partial fills, formulating lmt...