I had the chance to chat with Heather after the talk which earned me a copy of “Java 7 Concurrency Cookbook”; thanks for that 🙂 We discusses a couple of ideas and she gave me points; maybe I’ll submit a few patches. If I do, I’ll blog about the experience here.

Simon gave an insight on some of the problems which the Java Community Process JCP had before Oracle bought Sun and then, he showed the plans for the next two major Java SE and EE release. Java SE 7 is due Juli 28th, 2011 (if nothing bad happens), Java 8 should ship end of 2012.

There wasn’t anything really new except the nice way in which Simon presented things.

Of course, the presentation ended with the usual (at least for US companies) disclaimer that all this is subject to change at any time.

On one hand, I think it’s good that Oracle simply break ahead and let’s the past rest. The blunders with OpenOffice, Java Harmony and Hudson created a lot of bad blood with the community. Their best chance is probably to finally present something substantial instead of always only upsetting everyone with their decisions.

What I found odd is the priorities: First, they want to broaden the developer base. Java is #1 right now (or so they say). Hm. They want to increase adoption. And they want to make developers more productive. In that order.

If I was in charge there, I’d put “make developers more productive” top of the list and kill everything else. Why? If Java is more productive than anything else, that will automatically increase adoption.

Oracle’s priority lists reads more along the lines “we know we can’t make developers more productive, especially not after making everyone hate us, so we’ll just blind them with advertising.” One of the major problems with Java is that they can’t change the language. It’s not that they really can’t but it could possible break so much existing code or drive the complexity up one final, deadly notch, so really, they can’t.

Which means Java (the language) is a dead-end. But they can’t admit that, either, because everyone things Java == language. Wikipedia has a list of languages that the Java VM can run. Developers are more productive with many of them. Groovy usually needs 3-4 times less code to solve some problem than Java code and it get’s better with every release. The same is true for Scalaor Ruby.

So maybe Oracle is right: A lot of advertisement to drive people away from the Java language and into the open arms of the many new, much more productive languages is actually a better solution than breaking the Java language itself. Today, performance (or the irrational fear for performance problems) plus the “teach old dog new trick” problem prevent wider adoption. The former is being solved with Da Vinci (part of Java 7) so this leaves us just with the latter – which means advertising is the way to go.

Oh, and they will merge the best features of JRockit into HotSpot (the Sun VM).