For distributed computing: Java.
But, I just find that Java makes life easier. For example, you don't have to worry about endianess issues. You don't have to worry about portability (as long as you can run a JVM). You can serialize objects across the network easily, and if you want to do stuff like RPC, there's Cajo.
On the C++ side, you have stuff like LAPACK? Though I'm not too sure about this stuff...
Also, Google's Protocol Buffers project is quite helpful in passing data around. (C++, Java, Python, in any combination)