From a poll on java.net:

Earliest J2SE version that your next app must still support:
1.02     1.5%   (13 Votes)
1.1      3.7%   (32 Votes)
1.2      5.7%   (49 Votes)
1.3      19.5%  (166 Votes)
1.4      55.2%  (470 Votes)
1.5      14.2%  (121 Votes)


Why is that interesting? I come from a bit of a strange perspective, I suppose, as I still like to consider targetting Mac OS 9- (which only gets to 1.1.x) -- heck, I'm working on a 1.1.x app for fun now, doing all the coding in OS 9.2.2. This perspective constantly reminds me how little one can do in 1.2+ that you can't, with a little work, get going in 1.1 pretty danged easily.

That nearly 70% of Java coders are shooting for 1.4+ (so that eliminates nearly every Joe User Mac < 10.3) show me two things. Most obvious is that most Java apps are written for boxes where the coders can easily control what jre is there, ie, most apps are likely being deployed on servers. Second is that there's essentially no bump whatsoever (out of nearly 1000 schmoes) for Mac Classic/Microsoft's JVM, which also plays into Java being almost exclusively server-side, in-house/custom hands-on install, jive.

A third lesson is probably the most damming about Java coders... I'm not sure this latest and greatest obsession (14+% shooting for 1.5 already, for heaven's sake! 1.5 is in beta!) says much for their coding abilities. To use and depend on the objects Sun is providing with the jdk/j2se/jvm/jre/whatever shows coders don't quite understand the power of object oriented programming. They aren't creating well-engineered core widgets; they're extending the default. This is part of the reason people don't use Swing -- the ability to use a custom layoutmanager means you can do any sort of GUI you'd like quickly and easily. But coders don't see that. Instead they see what layoutmanagers they get out of the box and stop right there. Oh well, no wonder VB does so well (and I admittedly enjoy my VB.NET!).