I agree/disagree...... The performance between the 2 is a lot closer than it used to be. A great system trading app can be developed in either language, and without a doubt java will significantly cut down the development time. This is especially apparent in the amount of time it takes to get a working prototype up and running to build off of.
However, if your system TRULY needs power and speed, you are not going to beat C++. A real life example, I have had multiple iterations of my bot. My very first version was written in C++, my second version in java. I perform a lot of backtesting with my bot and speed was starting to become an issue. Was starting to take way too long to go through the data sets. So now i'm no my third itteration and this one is written in c++ again. My last two versions are nearly identical function/feature wise except the languages of each is different. The c++ version backtests nearly 12 times faster than the java version...... These results will not be the same for everyone however. If you are not used to c++ and especially optimizing code in c++ then you probablly won't see the same gap in speed, but it goes to show that in the right hands the speed difference can be huge.
Funny thing is I do all my strategy development using my c++ version and I run the actual automated trading with the java version. I do this primarily because I feel more confident in the java version being stable.... Stability is a big componet when it comes to trading software...
So, bottom line is I recommend Java unless you absolutely need the extra speed for some reason.