Discussions

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.)

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.

i dunno, "surprisingly few" doesn't have a good meaning and this survey is not likely to be representative across the board of.

True, but I still feel I was right after all ;)

The urban myth seems to be that the "majority" of enterprises are on 1.4, but survey after survey shows this is just not true.

Just do some googling. There are some other surveys out there that all pretty much paint the same picture. We did a survey among our clients a few years back when we wanted to upgrade our core framework to Java 5. Even back then only a very minor number of enterprises was still on 1.4.

There are various reasons for this. Companies don't want to run on EOL'ed stuff, even though it's possible to buy extended support. Another reason is that many still remember or suffer from ancient fortran code, for which it is extremely hard to find new programmers. Sure, big enterprises can always find someone or train them on the spot to do maintenance, but large scale development based on such ancient code is often out of the question.

By upgrading often and in small increments, you prevent creating an unsurmountable amount of work when you finally really *have* to upgrade.

An additional benefit is that this keeps your programmers happy and morale high. Very few programmers enjoy working with ancient versions of technology. The few people I know who have to use Java 1.4 all say they hate it.

Keeping your programmers happy is generally a good strategy. Of course, nobody says this means recklessly jumping on every new tech hype, but just staying 'reasonably' up to date ;)

So of the people who read tss, who want to take surveys, yeah, it's very few. but i dunno if i'd take that as meaning much more than that, if i'm being honest about it. and i'm trying to.

Err that was me :-). Although it might seem funny, I'm actually really enjoying developing code with JDK 7, although the Netbeans 7.0 Beta support doesn't really live up to expectations (the IDE is just too crashy/buggy). I'm already using the project coin features without really thinking about it (espeically the diamond syntax and being able to use '_' as a large number seperator) and the NIO.2 file system APIs are a definite improvement, I can recurse through directories easily now! Now its time for a shamless plug :-D, see http://www.java7developer.com for more details if you're interested.

TechTarget provides technology professionals with the information they need to perform their jobs - from developing strategy, to making cost-effective purchase decisions and managing their organizations technology projects - with its network of technology-specific websites, events and online magazines.