1. Java is about as hard as any other modern language for game programming. It has its quirks (every language does!), bit it's not easier or harder by itself.
And once you know how to use OpenGL, every language looks the same anyway. :)
2. Klystrack is nice for making chiptunish-sounding music, and easy to integrate into your own games. If you are not using java, that is.
Java programming is not particularly hard, but Java is a very complex beast. You end up memorizing lots and lots of stuff that's not particularly hard. And it's very verbose and quite formulaic. So much in fact that Mark Pilgrim, who wrote a 1079 book "Thinking In Java", including a whole chapter about opening files... has said he can't remember how to open files with Java !
Corporate environment loves Java because it has corporate hierarchy support in language syntax. Java programmers are sometimes called Java priests. 1079 pages should be a clue for you. For comparison, The C Programming Language by Brian Kerninghan and Dennis Ritchie is 200ish pages. Both are regarded as "the" books.
I personally think it's incorrect to think in terms of programming language difficulties. Learning how to program has very little to do with the languages themselves, actually. It has more to do with learning how to make operational logical systems, applied with a certain language. The only thing that you have to learn is the syntax, and once you know the syntax you'll come across a lot of things you don't really know. That's why there's a ton of documentation available.
So, what I mean to say is that it doesn't matter whether a language is easy to learn or not. What really matters is that you learn the syntax, and learn to think and conceptualize in logical systems.
DryRoastedLemon: Tools you use affect the way you think. This includes human languages, and, not that surprisingly - programming languages. You add programming language syntax and idioms to your vocabulary and think in their terms.
You can write readable code in Perl. Does Perl make it easy ? No.
That goes without saying. You can't use a language if you don't know it, and not knowing it makes it very hard to use. That is also exactly what I wasn't talking about in my post, and so I don't really see how your post is a response to mine.
To go with your example, you will probably agree that you can't use a language effectively if you don't know the grammar, the logical system behind the language itself. The same goes with math. This is also why in universities they will spend a ton of time on math, calculus and the like, and relatively little time on actually learning the programming language (I would know, I've been there).
In fact, to go with your example, I think most linguists will agree that if you know the system behind a language (and not necessarily a broad vocabulary) it is much easier to use the language and acquire new knowledge.
No, I don't see you understanding what I meant. I claim that it ]does matter whether a language is difficult to learn or not.
To use an extreme example, try assembly. Assembly is not an awful language, in fact it has amazing potential. A dude has ported Prince of Persia from (then) IBM PC to C64. It's an amazing feat. http://www.youtube.com/watch?v=tBs5-WOtIpc
But does assembly really teach you good programming ? Mostly, it teaches you how a processor is built. You must struggle with that before you start solving programming problems. There are so many minute details.
C (and C++) is a similar case, just not as drastic. You'll be largely struggling with the language, not with the problem you're trying to solve.
My language of choice is Python. Python has performance issues (not really suitable for realtime games), but is one of few languages liked by both academia and business world. Using it, you can get right away to programming challenges and techniques. Order of execution, conditionals, loops, memoization, computational complexity. Some languages make you wade in language-specific issues, others get out of the way and let you focus on the problem you're solving. If you're choosing a highly verbose/not very expressive language, chances are you won't have much time for more interesting concepts. Things that are considered "advanced" topics in one language may be trivial in another one.
It's not just "you use this language this way, you use that language that way, and you just have to learn it.". That's the impression I get from your posts. Learning a new programming language can make you better at an old language. Sometimes, learning a new language or a tool makes you realize you've been using a wrong tool for the job, you should've been using something else. For a man with a hammer, everything is a nail...
In any case, I don't wish to pursue this topic. It's an open problem and it can easily become a flamewar.