I'm much happier with jdk 1.5 than I was with 1.4 or 1.3 or 1.2 etc.... Not sure why you don't like the new additions. In general you don't have to use them if you don't want to.
Not sure why you don't like the new additions. In general you don't have to use them if you don't want to.
I don't really disagree with you. That said, it's a little bit of an opt-out, in the same sense that arguing that C++ is just as clean as C because "you can avoid all the ugly weird parts if you really try" is something of an opt-out. (I'm not trying to comment on the relative merits of C++ and C (edit: or, for that matter, on Java <1.5 vs. Java >=1.5), so much as on the relative levels of simplicity of the two languages, just to make certain that's clear).
My main issue is that they add more complexity to the language, making it harder to learn and to understand. They also encourage even more verbosity in an already verbose language. Furthermore, the uses I have seen all seemed a bit borderline - they used to say that configuration should stay out of the code, but now it sneaked in again.
How else would you propose to make meta-information about code available at run time? Before annotations we had to put that information in separate configuration files. That ended up being more complex, and harder to learn and understand.
Neah. Generics are useful. Not perfect, but useful. They also happen to be optional.
The language evolution has been good, but too slow.
Even the platform evolution has been good, they have (and perhaps still) set the standard for many types of libraries.
My main issue is the growth of the platform (to what, 200mb?). I would like a much tighter standard library. In an ideal world, Swing, XML parsing ... etc. should be seperate, deprecated items removed and old apis redone.
Not so much optional - I think in modern Java projects you will be expected to use them. Also, 3rd party code will use them and won't work with your code if you don't use them.