another "future of java" entry
These are kinda fun threads, where people can take a break from lengthy involved religious discussions on such topics as "Are Generics Bad?" (A: only if you use them) and/or "Does .Net have a future?" (A: yes, but not in computing).
I'm talking about discussions of the nature, "What's in a Name?": i.e., What should Java SE 8 be nicknamed? For reference and other's opinions, see TSS or a lengthy list of suggestions here on kirillcool java.net blog.
The reason I find this so interesting, is that you can really get a sense of the community's impression of the status quo. Some people go for simply marketing mouthfeel, but many try to in some way embody the spirit of all-that-is Java into a single word (an animal, mostly [see footnote]).
That these words (animals) tended towards the larger beasts shouldn't be too much of a surprise.
But how big can all-that-is Java get? It could be, that Java will continue to be broken down into "profiles" - targeting the Enterprise, the Micro (and sub-categories thereof), Standard, Real Time?, etc... Or, there could be a continuing evolution of the primordial Micro into a SE, due to increased computing power of smaller devices. And, the POJO push on the server might bring the Big Boys of EJB back into the SE fold, as well. Perhaps There Can Be Only One.
There are, however, too many API's. A programming language shouldn't evolve in complexity beyond a natural language. This isn't just Sun's fault (not Sun-bashing, here - It's amazing what has happened in the past ten years). Consider the simple example of Logging APIs: first, there were many; then, one API was rolled into the core Java API. Consider XML apis. Threading APIs. RegEx APIs. Arguably, it's good that "one" is chosen, all things being equal, and added for once and for all to the core Java API. Arguably, I said.
Looking forward to Java 6, 7, ... 8... That's a long way off, in terms of public perception of what will be (or what is?) the #1 programming language. But, it has to get simplier. Somehow, simpler. Trim the fat, burn the chaff, and let a new beast rise from the ashes.
So, I vote for Phoenix.
(Ok, you'll probably want to know how this could possibly happen, in practice. Well, that's much more boring than hoping for a total refactoring & massive weight-loss program for the Java API's. Simply put, there'll probably be a slew of Java-based DSL (domain specific languages) which may or may not even used Java syntax (yet run on JVMs, and be extensible via Java, and can make calls to/from other DSLs). Less code to write, more meaning per line, easier to maintain. Oddly enough, this only creates simplier APIs at the expense of creating a linguistic Babylon.)
- footnote: http://java.sun.com/j2se/codenames.html