In the June issue of SD Times there is an entire article on how "spec-laden" and "bloated" the Java language has become. When I read it I was immediately reminded of Bjarne Stroustrup (the inventor of C++) and what he said in response to the question, "Is Java the language you would have designed if you didn't have to be compatible with C?" Keep in mind that he wrote this when Java was considered superior to C++ for its simplicity and he was being mocked in the press for creating such a "bloated" language. This is from his FAQ:
Much of the relative simplicity of Java is - like for most new languages - partly an illusion and partly a function of its incompleteness. As time passes, Java will grow significantly in size and complexity. It will double or triple in size and grow implementation-dependent extensions or libraries. That is the way every commercially successful language has developed. Just look at any language you consider successful on a large scale. I know of no exceptions, and there are good reasons for this phenomenon.
When he wrote this (back in the 90's) people pooh-pooh'ed this statement and said he had sour grapes but of course you shouldn't second-guess somebody of Stroustrup's caliber because, of course, he was right, Java is "spec-laden" and "bloated" now but also, "there are good reasons for this."