I love Java, but I don't make games with it. Yet. C++ could learn a lot from it (and Visual Studio could learn a lot from Eclipse). It's taught me a lot about object oriented design, and being an old C programmer, I was stuck in procedural mode. So learning Java really helped force me to begin thinking in objects instead of functions. And, perhaps ironically, that improved my C++ skills a lot. I would probably make games with it, but for now there aren't enough "middleware" options (engines/frameworks/etc) for game development. There are plenty for C++, so that's what I'm doing. One interesting possibility is to use JNI to hook a C++ engine with Java, and that might prove to be a good thing. But I have to get some revenue flowing before I can do R&D like that. I am also interested in exploring managed C++ under .NET, but that kind of rules out simple ports to Mac and Linux, doesn't it?