Why do languages always have to evolve? On average, do languages get better over time or do they deteriorate? I am sure that Java has deteriorated a lot.
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.
Simplicity of use is what seems important, not necessarily simplicity of design. Though JavaScript is more complicated than C in the sense of having more features, those features generally result in source files that're more succinct and faster to write (since you don't have to, say, roll your own hashtables).
Sometimes, the newer, simpler languages are new versions of the older, more byzantine languages. I think that's basically the Perl 6 approach, for instance.
It's like sketching with pencil. Your first version is complicated and gets a lot wrong, with stray lines all about. The final one is cleaned up and simple, yet that simplicity is a direct result of that messy progenitor.
Lua started out as a configuration language in 1993 and since then has evolved into a more general purpose language that is cleaner, yet more flexible and powerful. It has gotten much better with time.
Keep it simple, please!