It's actually quite painful to realize when you look at your last 10 projects or so and you find that indeed almost all you've done can be reduced to these few categories.
My pet peeve about java is that I have to use an IDE to work with it because of all the APIs there are so many of them that I can't seem to remember all the function names and parameter sequences. An IDE is like a crutch, you use if for a bit and then you find out you're now so atrophied you are dependent on it.
also it doesn't help that java is staggeringly inconsistent. Even something as simple as getting the size/length of something in the core Java API is inconsistent:
array.length
string.length()
arrayList.size()
awesome. How could I not remember that. And how about number type conversions?
Interger.parseInt
Interget.toString
BigInteger.valueOf
oh yeah, common sense.
verses something like ruby
7.toString
"7".toInt
A sane and consistent API goes along way to not requiring you to memorizing a epic amounts of useless API and essentially going API spelunking.
Also with java it does seem that alot more of the coding is just calling more API to do things, plugging things together, rather than actual coding and problem solving.
On the bright side, at least you don't have to deal with a language that includes functions such as mysql_escape_string(), mysql_real_escape_string(), and mysql_no_really_i_mean_it_this_time_escape_string().
My pet peeve about java is that I have to use an IDE to work with it because of all the APIs there are so many of them that I can't seem to remember all the function names and parameter sequences. An IDE is like a crutch, you use if for a bit and then you find out you're now so atrophied you are dependent on it.