To alter a quote from Annie Hall, programming languages are like sharks. They have to keep moving or they will die. Languages frequently don't succeed at this. Thus a fine language like Common Lisp failed to include threads and networking in its spec, and by the time standards emerge, it is too late; the needs of users have long since passed by.
Java has done a good job of this. They have managed to keep incorporating the needs of users, while trying to stay true to the spirit of the language, and they have not proceeded so fast that they introduce unncessary complications. Some of their additions to the language spec have made things more complicated and confusing, but you always get something out of it.
I'm interested in exploring this topic further in the next few posts. I'd like to explore a few examples of Java language additions, and then examine some potential upcoming changes. What are your opinions about changes in the Java language in recent years?