Last month, I published a survey to ask what version of Java people used on their home and work machines. Six simple questions, with 431 responses: Java 6 and Java EE 5 are the winners, in short.
Quick: 431 people isn't as many as I'd hoped, but then again, I probably didn't aggressively promote the survey enough. It's still open if you want to speak up.
Question one: what JVM do you have installed at home, on your primary computer?
Java 6 won, with 95% of the responses. seven people had Java 7 installed. Two people had Java 1.4 installed; nobody had anything older. A few comments, though: some wanted to select more than one ("multiple JVMs installed", "also have 1.4, 5, and 6", and one said "writing a book" which was funny). One person pointed out that the middleware might make the chocie for you, since he's on WLS 9.2 (WebLogic 9.2), he's on Java 5. I guess he's doing WLS stuff at home.
Question two: What JVM is on your primary work machine?
Java 6 won here, too, but only with 78% of the responses. Java 1.4 got 23, Java 5 got 56, Java 6 got 337, nobody had Java 7, and three didn't answer. A few people still wanted to respond with multiple answers, which was fair. (I'll explain what I learned about making surveys at the end of this post.)
Question three: At home, what JVM do you target compilation for?
Java 6 still won: 80% with 345 responses. Java 5 got 71 responses, Java 1.4 got one, Java 7 got one. 12 people didn't answer.
Question four: At work, what JVM do you target compilation for?
Java 6 won again, with 247 responses (58%); Java 1.4 got 33 (8%), Java 5 got 146 (34%). One person said they used Retroweaver for clients with 1.4.
Question five: At home, which Java EE specification do you use?
55 people (13%) said that they didn't use any - non-java or non-client-server apps. 14 said they had a custom server app (3%), 7 said they still used 1.3 (2%), 52 said they used J2EE 1.4 (12%), 41% said they used Java EE 5 (174), and 29% use Java EE 6 (124). One person said "FFS, many people use JSE," which is why I had the "none" in there, but I guess that wasn't enough for him.
Question six: at work, which Java EE specification do you use?
None, custom, and J2EE 1.3 all got 5% (20, 21, and 20 answers respectively). J2EE 1.4 got 93 answers (22%), Java EE 5 got 210 (50%), and Java EE 6 got 60 (14%). One person said "JSF" which doesn't mean much - JSF's been around for a number of the specifications. The "FFS many people use JSE" answer was repeated (apparently "none" wasn't valid. I would have thought it was.)
It was an interesting exercise. Like I said, I didn't promote the survey enough, I wish I'd thought of ways to make it more obvious and attractive. I also wish I'd worded the questions a little differently, like "what is the main target" instead of "what target do you have" since the "main target" is the one I was mostly interested in. Last, if you count up carefully, you'll see some numbers are off - I added a question or two after a few responses were in, so the numbers aren't quite right (three people answered before I fixed the survey).
As far as the conclusions themselves: current specs win for Java 6 (although it's been around for a while, and Java 5 is end-of-lifed, so this is good but should have been expected), and Java EE 5 is the winner for the EE specification.
I don't know what I expected for Java EE 6. It hasn't really made a splash like Java EE 5 did, maybe because some of the changes were less severe (Java EE 5 added annotations, Java EE 6 added CDI, and Spring's already there.)
Spec leads, Oracle: you really need to figure out a lever to get people off of Java 5 and earlier. Java EE 6 is also not getting the traction I'd have expected by now. Get on it.