I have been a software engineer for over 40 years. I do it for a living. Right now my language of preference is C#, although I mostly use Ruby, Java and C++ at work.
I would recommend either C# or Java to start with. Note that besides the language, and important issue is also the development environment. With C# you essentially have no choice - use Visual Studio from Microsoft. They have a version - Visual Studio Express that I believe is free.
For Java, my recommendation is Netbeans from Sun. It's also free. I prefer it to Eclipse by a wide margin - especially for a beginner.
I suggest you not get involved in the religious language wars. Both C# and Java are excellent, modern, fast object oriented languages. One of the key things they bring to the table over C++ is automatic memory management and do not use pointers - a source of hard to find programming bugs - even for experienced developers. They are both about 1.5-2 times slower, on average than C++.
While it's true that the IB Client is wriiten in Java, it's interface to your program would be through a TCP/IP socket - which, for your purposes, is just a stream of characters. Your program sends the characters to the IB Client running on your machine, which then uses a proprietary protocol to talk to the remote IB servers. I have written a ton of both C# and Java to use the IB Client.
Good luck!