Dunnu if this is really a question but I've been struggling along with Java for some time and I can't get myself over the apparent fact it isn't "man enough" of a language. I've reied looking at Java 3D and it doesn't even look like a serious technology to me right now, more of a "Oops, let's just quickly paper of that crack before someone notices", seriously, it's a fix.
C++... I hate it. It's an ugly language. It's OOps extentions are like a keep-up-with-the-joneses response, basically, it's just another fix.
Smalltalk is a brilliant language. Much, Much, Much, Much better than C++. In fact that sentence doesn't encapsulate just how much better than c++ it is... in terms of the beauty and purism of its design. Triouble is Alan Kay's abstracted the problem so much that I don't think I trust it when it comes to getting jiggy with the low level stuff. Imagine I want to write a shader for an Nvidia card in Smalltalk... is that possible?
Other than Smalltalk, Assembler is still the reigning champion of computer languages, excuses aside, about how fiddly it is to use, after all, that sense of fiddliness diminishes with years of exposure and practice, there's nothing to touch it when it comes to being able to do whatever it is you want to and getting the juiciest results possible. No other language let's you do so much with the machine you're working with, the only big trouble is that with OS's taking up so much CPU time for themselves and insisting on barring progress... they're more like the doormen of the computer system than the workers they could be... the dividends of programming in raw assembler become dubious when you see how much of your time is eaten by multitasking and other activities that are frankly unwanted most of the time as most people use one application at a time no matter how many the OS can run... look at the PS2... nobody complained about its OS... it didn't have one as far as users were concerned, as that, I believe is the best way.
So, right now, no language seems worth working with. They're either designed in a way to guarantee frustration. Have bizarre exceptions and clauses in how they work and are generally, in the PCs case at least, frustrated by a mammoth OS that just goes "Nah, you're not coming in unless it's through me".
All languages have the same problem: They exist to abstract the task of programming, partly so new hardware doesn't render the old generation of programmers obsolete, but this goal of abstraction falls on its face because at some point you Have to talk to the hardware because that's what does the work, so you get solutions like Ruby which is a beaut' of a language but runs into brick walls with what you can actually do with it.
I think what I'm basically saying is I want a language that answers three questions, in this order:
1. Is a beauty to work with.
2. Satisfies very short run times.
3. Has an easy relationship with the hardware.. which is a bit like 2 but answers to the generality of different platforms, rather than say, being a very task specific language like Cg.
Bacially the nearest to my needs are Smalltalk... but it's lack of adoption puts me off... there must be a reason. Ruby... but it smells too much of a scripting language to me, i.e. great for tokenising text strings but not so great for particle systems or fluid dymanics. And Java which is just far too polite for its own good and as soon as you want to start bending the metal it looks weak.
I know an ansti C++ stance won't win any friends amongst a game coding community, but I contest that that's not because C++ is a superb language, it's because it's the only option that's going to work.
Personally... and I'm sticking my head out as far as the chpping block here... I think there's still a good case for assembler. Accusations of "Horrible" come from people who are not equal to the headache of dealing with programming at the microscopic end of the scale ans some of the criticism is at the cranky design of the Intel platform your generally talking about, that still tries to build an ocean liner out of a paddleboat, God forgive those who buried Digitals Alpha chip. Assasination? Martyred? I don't know what went wrong there. Anew chip with a good machine code and a perhaps slightly high level assembler with extentions for large project management, something like OOPS, but not so vainglorious, let's have one of those. Actually, let's just have shiny new computer programming language, let's really start from scratch this time though and deal with the low level issues properly while we're there.