In the case of Minecraft, it's not Java which is inefficient per se (though I do hate the language and everything its built on), it's that Notch has no fucking idea what he's doing. Take a look at the contents of the Minecraft jar archives sometime and then ask yourself what "efficient" programmer would design something like that. Take a look at some of the "bug fixes" and ask yourself how something like that was overlooked. Just look at the history. That's really all you need to do. For quite some time I tried tracking all of the utterly nonsensical bugs in Minecraft and gave up because the correlation between Thing X and Thing Y just blew my mind. And the server is even worse. Ask yourself why the server takes up so much CPU time even when nothing is going on (be sure to take into consideration just how fast your CPU is today). Same goes for memory commit size of the server process. Given what Minecraft does (very little), nothing should be destroying resources like that.
Amusingly, there are some guys at Mojang who seem to have their shit together -- like Jakob. Except Notch doesn't permit anyone except himself to touch the Minecraft code (why should that surprise anyone though, given that he
brags about being a member of Mensa). There was one exception made where Jakob went in and fixed a series of bugs that had plagued the client for quite some time (and the bugs were pathetic) -- I believe Notch was on vacation (
when isn't he?), and when he got back nixed his access.
There are Minecraft-like games under development that look promising but need improvement -- and yes, they're in Java, yet do not suffer from all the horrible nonsense that Minecraft does. A C++ alternative is
Minetest-c55, which again, looks very promising.
And please, please don't bring up
Dwarf Fortress. I only mention it because usually during Minecraft discussions DF comes up as some sort of amazing comparison model showing that awesome things can be done blah blah blah... whatever.