We've been talking a lot of the D programming language at work. It looks like the ideal programming language for games. I regard it as a language that covers the ground between the complex and relatively low-level C++ language, and higher level virtual machine based environments such as Java and Microsoft's CLR. It compiles to machine code, and the object files are compatible with C and C++, so it's very easy to use C libraries, even with callback functions. On the high-level side, it has garbage collection. This may be somewhat controversial among low-level fans, but as memory handling is complex, I think garbage collection is worth the loss of control. I haven't done anything with D except for a few examples, so I can't tell how easy it is to work with. The biggest problem with it as far as I can see is that it's not very mature (some features of the language are still in flux) and has no good IDE support.