Java Swing Is Dominant GUI Toolkit

As noted over on java.net, Evans Data Corporation has reported that Swing is now the dominant GUI Toolkit for Northern American developers.

Java Swing with 47% use, has surpassed WinForms as the dominant GUI development toolkit, an increase of 27% since fall 2004.

As someone who’s been developing Swing user interfaces ever since the technology was released, it’s good to see it succeeding. In some ways, it’s not surprising that it’s more popular than WinForms. WinForms is a pretty limited technology; if you want to build compelling, dynamic interfaces it really isn’t the technology for you. Swing, on the other hand, is just about the most flexible, powerful GUI toolkit around (to say nothing of its cross-platform capabilities compated to WinForms).

The downside with Swing is that it’s not trivial to use (compared to WinForms). I don’t mean the learning curve is steep; I mean that its flexibility gives mediocre developers a million ways to hang themselves (for example, firing off too many change-type events to too many event listeners can kill performance big time). I wish I’d been given a dollar for every time someone from a mediocre software shop has said to me something like - “But Java doesn’t work. We tried to use it, but even a simple button takes seconds to respond when its clicked.”

However… if you’re a talented developer, you can build the most amazing, beautiful GUIs that work fabulously well. The pity is that there are virtually no great Swing GUIs out there in the public domain. I’ve demo’ed Swing applications to large audiences throughout the US and Europe, and regularly got gasps from the audience at features they had thought impossible to implement; and to small audiences at major VC groups and banks, where I’ve gotten comments like, “that is the most impressive software demo we’ve ever seen.”

And the truth is, we simply could not have have built these applications using any other GUI toolkit, with anything close to the productivity we achieved by using Java and Swing. Of course, in the early days of Swing, I can’t pretend we weren’t living on the edge, being saved a couple of times from fatal bugs in the toolkit by a new release being made available the day before an important demo. But for a good couple of years now, Swing has been pretty much rock-solid, and reasonably performant too (OK we can still use more performance, but it’s pretty good now!).

It’s perhaps worth pointing out here, though, that I don’t think WinForms was ever really supposed to compete with Swing. Microsoft’s next-gen technology - XAML (Avalon) is looking pretty powerful. I wouldn’t be surprised if that represented some pretty stiff competition.

Trackbacks & Pings

  1. Simon Brocklehurst's Weblog on 10 Nov 2005 at 1:25 am

    Java GUIs - Lookin’ Good!

    It seems there a bit of buzz at JavaOne Tokyo at the moment. Some exciting things going on around Java on the desktop. Finally, we’re reaching the point where it will be possible in Java to make fast 3-D graphics and 2-D graphics/Swing all p…

  2. Simon Brocklehurst's Weblog on 27 Nov 2005 at 11:21 pm

    What Are The Most Popular Languages For Open Source?

    My last blog entry about getting kids into programming languages got me thinking about the programming languages I’ve learnt over the years. I’ll be writing an entry about that in a few days. However, thinking about programming language…

Comments

  1. Rick wrote:

    I agree with what you are saying. I think in the early days swing was hurt by expectations. People expected a VB application (in glorious battleship grey) to be ugly. Whereas with swing the expectations were higher.

    Those of us who did the hard yards in a more limited environment (like VB) and learned how to make ugly things look good can do even better with swing because it enables a lot more.

    One thing I’ve noticed that bugs me though… is when people compare current real world offerings with things that Microsoft may or may not do at some point in the distant future.

    It annoys me for instance when reviewers compare OS X 10.4 (the ‘other’ Tiger) with Longhorn’s announced feature list (which I note mysteriously gets shorter and less interesting the closer it gets to the latest (slipped) deadline… but I digress). One the one hand I sympathise with the reviewers, since OS X completely blows the current windows offerings out of the water… and a completely one sided interview probably wouldn’t be well received as being not interesting enough. In essence their job is to create news/controversy if none exists. However on the gripping hand by comparing to microsofts vapourware, they validate that vapourware. So that even though they have a history of slipped schedules and shrinking feature lists (and outright lies?) we shore up their reputation by validating them.

    If we say that XAML/Avalon might be a competitor to swing then implicitly we are suggesting that perhaps people should wait until Avalon comes out before making a decision to switch to swing or not…

    … of course, when it does come out it will be years later, and not nearly as good as the marketers try to make it sound now… and the theoretical switcher in question *won’t be able* to switch to swing anyway, because by sitting on the fence for a couple of years they will have had to commit to some other inferior technology (whether ms or otherwise).

  2. simon wrote:

    I understand your frustrations about comparing current capabilities of one platform with future capabilities of another. I should say that this isn’t what I was trying to do here. In fact, if you look at apps developed with early access versions of XAML and C#, one of the most striking things about them is that you can do so much of them today with Swing, Java2D and even JOGL. And, when Java SE 6 (Mustang) is released, performance will again take a step forard.

    So, in some ways, Microsoft is very much playing catch-up with Java on the Desktop. However, there are some areas of Desktop programming e.g. rich media such as video - where innovation on the Java platform has been painfully slow/non-existent. And this is an area where Microsoft may very well trump Java big-time.

    Would this matter? I think it would. My view has always been that rich media was only ever going to increase in importance with time. And when I look at software written by companies that are doing things with rich media by using XAML and C# today, I have to say I’m quite impressed. I hope the Java Desktop team is given the resources to let them compete.

Post a Comment

Your email is never published nor shared. Required fields are marked *

*

*