Responding to Graham Glass, James Strachan says:
The fact that this [3rd party extension of the Java language] hasn't really happened yet and that generics, despite being available for many years, never gained popular adoption, makes me think that most folks are not that desperate for new bells and whistles inside the Java language and would rather see improvements in the core libraries, frameworks, tools, APIs etc. Most of Java's development has focussed on the platform rather than the syntax. Though now Java has a serious competitor in C#, maybe its time to redress the balance.
I think that this view is a bit optimistic, it's been noted before that language features don't really catch on unless they're integrated into the language, e.g. Garbage Collection in C++. It's certainly possible to build a garbage collected system in C++, and there are commercial implementations (I think one prominent vendor is named Great Circle), but hardly anybody uses GC in C++. So the fact that hardly anybody's using third party extensions to Java isn't an indication that people don't want them; they either don't know they want them, or they don't want to use a third party extension. Especially given that Sun put so much effort into promoting "100% pure Java", it's not surprising that nobody's shown much interest in creating a "better Java". Sun's created a situation where their imprimatur is crucial for language features to be accepted by the wider audience of Java programmers. So development focuses on the platform, where extension is encouraged, rather than the syntax, where extension is discouraged.
[Gordon Weakliem's Radio Weblog]
Agreed. I think the focus on 100% portable Java and Sun's attempt to provide a stable platform certainly disuaded folks from tinkering with the language. I myself rather liked the pizza and GJ extensions to Java but was always put off using them as my source code wouldn't work in other peoples IDEs and environments.
Since then though (pizza came around about 1998) we've all become much more dependent on Ant and Maven to build our projects and perform our compiles. So supporting some new language syntaxes shouldn't be too much of a problem. We'd just need Eclipse and IDEA to enhance their language-syntax modules :-).
Joe also gives some good examples of how useful the foreach and using clauses could be in Java as well as the case for blocks. For some reason I thought pizza or GJ supported blocks but couldn't find a link when I just took another look.
There is also a wealth of good ideas on this wiki site for Java Three
Also my headline of the day goes to this that made me smile...
we've had J++, JLo and now J* [Java]. [Spike's GeekBlog]
If JDK 1.5 is gonna get generics anyway then the Java syntax is changing. So this could be a great time to add these new constructs - I'd particularly like to see foreach, using and a neater properties syntax.