Java Version Penetration (November 2007)

Java's future looks bright - the magical Java SE 6 Update N is just around the corner. A modularized JRE (Kernel installation mode) for quicker downloads, more Java2D acceleration, applets running in a separate thread (which means no dreaded startup freeze anymore), and lots of other funky things.

But how well do things look right now? Good question. David Brakeen (the author of Developing Games in Java) generously shared some stats from Pulp Games (by the way the 1.4 compatible PulpCore framework is open source and pretty awesome).

The size of the sample is 3653 playing sessions (single day). Since versions prior to 1.4 account only for about 2% we can thankfully ignore 'em completely. That was about time, wasn't it?

java version penetration percentage

java version penetration counts

Accumulative Compatibility (what really matters):
java version penetration compatibility

While targeting 1.6 apparently is a bit too much for a casual web game, targeting 1.5 won't be much of an issue. Using System.nanoTime() is a compelling reason to use 1.5. There are of course workarounds for System.currentTimeMillis(), but they all come with a set of drawbacks.

If you're really fond of the 1.5 language features you can still produce 1.4 compatible bytecode with Retroweaver. The timing issue can be addressed with interfaces. Just make your timing/capping thingy pluggable and use what's available. This allows you to reach those extra 9% of users without any big compromises.

1.6 doesn't offer anything that's required for games. However, performance improved a lot (up to 48% in extreme cases such as real time ray-tracing). So, do your visitors a favor and educate 'em a bit. ;)


Do people really still make

Do people really still make applets? Really??


Of course they do. And Update N will make 'em pretty nice, which is the reason why many people are thinking about using applets again.

With Update N you get modular downloads, which means installing/updating Java will be pretty quick. Unlike other plugins it will run in a separate process, which a) gets rid of the startup freeze which plagued Java applets and b) will result in better performance on multi core machines. Often the browser process is sorta busy with all those flash ads already, which may result in massive performance degeneration.

Compared to Flash you get faster drawing and way faster calculations. So, a simple platformer for example can run fine with 500mhz instead of 1.5. And if you want to draw many sprites... well, then you can forget about Flash.

Right now Flash offers the better user experience, however.


do you have an update of this data? It has been about a year and Java SE 6 update 10 has been released.

re: update

Oh it has been a year already. An update would be interesting though.

I'll ask David if he got some new stats for me. :)

Post new comment

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

More information about formatting options