Ravi Mohan bids Java farewell, indicating that the increasing complexity of the language is the reason why. The problem is this - Sun decided early on to "protect" developers from themselves. Later on, they decided that they wanted power that the early decision had blocked. The result - ever increasing levels of baroqueness.
You've seen this in your own code (I know I've seen it in mine) - you start with a "simple" implementation that you know is wrong, and then keep hacking at it as your requirements grow. Over time, you end up with a huge ball of mud. Which is where Sun is with Java.