The Source for Java Technology Collaboration
User: Password:



Hans Muller

Hans Muller's Blog

Official: Swing is the Dominant GUI Toolkit

Posted by hansmuller on October 18, 2005 at 12:31 PM | Comments (33)

I've been trying to think of a way to humbly announce that no lesser authority than Evans Data Corporation has reported that Swing is the dominant GUI Toolkit for Northern American developers. It's difficult to present this new statistic with the grace and humility of good sportsmanship because, after nearly 8 years of steady growth:

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

That's a direct quote from the Spring 2005 report. You may want to read it again (I have). There are more developers building applications using Swing and Java SE than WinForms and .NET. Despite the titanic resources marshalled by Microsoft to assert dominance over their own desktop platform, the Swing community has grown into an unstoppable force. Microsoft has often been referred to as an "eight hundred pound gorilla". Thanks to the persistence and enthusiasm of Swing developers everywhere, we've thrown the gorilla and the cage off the island. We're the new alpha male, we're the King Kong of GUI toolkits. We are the force to be reckoned with. We are number one!.

I realize that was a little over the top. I'm supposed to be humble and quietly confident about our success and not indulge in all of this vulgar gloating and boasting and jumping up and down on the desk shouting, we're number one, we're number one, we're number ...

Sorry about that.

I'll just remain calm from here on in. You'll have to trust me when I say that I'm reporting the following from a peaceful and serene perspective. The use of both Swing and AWT have grown dramatically in the last year and, quoting from the report, "Java GUI development is clearly experiencing substantial growth". So it is. I would guess that there are at least two trends at work here. People are writing Swing clients to augment or replace browser clients for network services, and developers really do care about platform portability. Sometimes portability is just about spanning different versions of Windows but more often than not, it's about covering the growing "alternative" desktop market. Users want applications that provide entertainment or communication or educational experiences that are worthy of the fine computer hardware they're seated in front of, and the zippy internet service they're connected to. Developers are choosing Swing to deliver those experiences and here, at camp Swing headquarters, we couldn't be happier.

It's good to be king and it's hard to be humble. I feel a T-shirt coming.

duke1.gif

Thanks to Jeff Dinkins for another bit of just-in-time artwork!


Bookmark blog post: del.icio.us del.icio.us Digg Digg DZone DZone Furl Furl Reddit Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment

  • No wonder. It explains why we saw increasing number of people using components provided by JIDE especially in the past year. Thanks for sharing the good news, Hans!

    Posted by: jidesoftware on October 18, 2005 at 03:38 PM

  • Yes yes yes!!!

    Posted by: seymores_2000 on October 18, 2005 at 05:33 PM

  • Nice to hear this :-)

    Posted by: tzutolin on October 18, 2005 at 10:49 PM

  • I need to have that T-shirt!!

    Posted by: herkules on October 19, 2005 at 02:07 AM

  • It’s the best tool for the job, period.

    Posted by: floydprice on October 19, 2005 at 03:31 AM

  • Are the Evans survey results posted online somewhere? It would be nice to have a link to check it out for context or further information.

    Posted by: invalidname on October 19, 2005 at 03:56 AM

  • after years of FUD about Swing, we finally got recognized! The power of faith :))

    Posted by: felipegaucho on October 19, 2005 at 05:41 AM

  • sounds good, but this just doesn't fit with my experience as a desktop end-user - where are all the swing apps? I'm seeing SWT based creations, eclipse rcp based creations but no swing

    any more details from the report would be v. interesting :)

    Posted by: asjf on October 19, 2005 at 07:09 AM

  • Unless you live under a rock, you've probably heard of some of these?

    ETrade Market Trader
    Money Dance
    WebEx (applet with some swing windows)
    IDEs (netbeans, idea, jbuilder, etc...)
    Evermore office
    Think free office
    Limewire
    Yahoo site builder
    There are many others...

    Now it's your turn please point me to these SWT apps you mentioned.

    Posted by: rabbe on October 19, 2005 at 07:58 AM

  • Thanks to rabbe for listing some big Swing applications. Since
    asjf asked, I'd be remiss if I didn't mention the

    Swing Sightings column. You'll find about 350 apps catalogued there.
    We publish "preview" items about individual apps on

    javadesktop.org, I think you'll find another ~20 there. You'll
    also find writeups of large Swing apps in this very
    blog, for example:

    JavaOne Desktop Report: A BIG web started deployment of a BIG banking app
    .

    Posted by: hansmuller on October 19, 2005 at 08:36 AM

  • Great news. I think the decision to support native look and feel, combined with the performance increases really helped.

    My only concern going forward is how the single threaded nature of the event dispatch thread will sit with the transition to multi-core processors. Is there any work being done on this?

    Posted by: c_armstrong on October 19, 2005 at 08:53 AM

  • Congrats! Swing team!

    asjf:
    I've only encountered one application that was built on SWT, and I had no interest in it since it wasn't fully cross-platform. I'm sure they are out there though or people wouldn't be shoveling SWT still. All of the apps that I see and use are Swing apps. Maybe we're just using different kinds of tools.

    Posted by: evickroy on October 19, 2005 at 09:44 AM

  • This still surprises me. The lists of Swing apps aeems anecdotal at best. You must remember there are hundreds of thousands of apps used daily around the world. Just about everything every business user uses is NOT Java Swing. Sure there are some internal Swing apps here and there, and a few external Swing apps. But the vast majority of things are not swing. Just look under your start menu/programs and tell me how many apps are swing and how many are something else.

    I think some sort of creative statistics are at work here, but I'll have to look into how the numbers were gathered to figure out exactly what happened.

    Posted by: bwy on October 19, 2005 at 10:22 AM

  • Please note that Hans says "...Swing is the dominant GUI Toolkit for Northern American developers." not "...apps used daily around the world." Also, it states dominant GUI tollkit, not all end user apps.

    Posted by: evickroy on October 19, 2005 at 10:29 AM

  • bwy - no one is saying that the majority of people using desktop software today are running swing applications. What is being said is that right now in 2005, there to be more active development with swing rather than alternatives like Win forms or SWT.


    Posted by: rabbe on October 19, 2005 at 10:29 AM

  • Hans - that's great news! Congratulations to all the Swing team - past and present! Some thoughts on this news are on my blog.

    Posted by: psynixis on October 19, 2005 at 10:47 AM

  • Maybe it takes 50 developers to do with Swing what you can do with 1 winforms developer? That would mean more developers using Swing right ;) I love Swing - but the mathematician in me couldn't help pointing that out.

    Posted by: c_armstrong on October 19, 2005 at 10:48 AM

  • Congratulations, but upon reflection I don't think I use a single Swing app on a daily basis. I use Eclipse, Firefox, Thunderbird, Gmail (AJAX), TextPad, OpenOffice, Palm, VNC. I used to use IntelliJ, but switched companies and we are Eclipse-based. What do other developers use?

    david
    www.testdriven.com

    Posted by: dvydra on October 19, 2005 at 11:05 AM

  • First, congratulations. Swing has certainly come a long way, and I think you're entitled to a lot more then just a T-shirt ;-)


    Now a question... is there a Java/Swing based equivalent to WinForms that is more tailored to building form based applications?

    JohnR

    Posted by: johnreynolds on October 19, 2005 at 11:53 AM

  • As far as tools for creating Swing forms go, there are lots
    of them, many with a database slant. Putting together a
    comprehensive list would be a nice task for another blog so
    I'll just mention two.

    NetBean's Matisse, is a really
    nice general purpose GUI builder. The

    JGoodies Forms framework is an excellent way to code
    Swing forms.

    Posted by: hansmuller on October 19, 2005 at 03:01 PM


  • roomity.com
    that's a big swing app you can see ;-)

    .V

    Posted by: netsql on October 20, 2005 at 06:22 AM


  • c_armstrong: I don't think that the event thread will or should scale to multiple processors. For one thing, the amount of work done in simply receiving and processing events is quite small. But more importantly, events are single-threaded by nature; what would happen if we started processing events in indeterminant order?

    What must scale is the work done as a consequence of those events. That's where you come in; developers should make sure to offload all heavy lifting off of the event thread and onto other threads, which will automatically take advantage of multiple processors. There are utilities out there such as SwingWorker (finally integrated into core Swing in the upcoming Mustang release), to assist in this approach.

    Posted by: chet on October 20, 2005 at 11:04 AM


  • I agree that multi-CPU desktop machines will become
    commonplace before too long and multi-threaded Swing
    applications will be able to take advantage of them.
    I agree with chet that aysnc application
    work is what you want to thread. A second CPU might
    also host more mundane tasks, like (concurrent)
    garbage collection.

    Posted by: hansmuller on October 20, 2005 at 03:33 PM

  • Hi Hans,

    good news :-) But -


    We're the new alpha male, we're the King Kong of GUI toolkits. We are the force to be reckoned with. We are number one!.


    We may be all alpha and we may be all number one - but we definitely aren't all male!

    Jeanette

    Posted by: kleopatra on October 21, 2005 at 06:14 AM

  • Dear Hans,

    I love Swing!!!!. Congratulations to all the Swing team.
    Long live Java on the desktop!
    Long live Swing team!

    Posted by: amaury_swing on October 21, 2005 at 06:21 AM

  • Chet - I think over the next two or three years what you say about just offloading heavy lifting is true.
    However in 15 years time there will be desktops with 100+ cores. And there will be competing GUI toolkits that exploit these cores
    The Cell Processor already uses multiple cores (in a SIMD) fashion to power Playstation 3 graphics.
    Events are asynchronous and parallel in nature. Complex architectures (such as the brain) can handle them.
    Maybe if parallel programming proves too complicated for most developers then processor vendors will give up on the multi-core strategy. Its going to be interesting

    Posted by: c_armstrong on October 21, 2005 at 06:54 AM

  • Chet - one other point

    It was my understanding that 'Swing event-handling and painting code executes in a single thread, called the event-dispatching thread' (taken from the Swing tutorial)

    So in order words all the painting is single threaded? Which will become the bottleneck as other toolkits exploit architectures like Cell for high performance graphics.

    Posted by: c_armstrong on October 21, 2005 at 07:14 AM

  • Interesting remark, now this is to the swing team to continue their job.

    Some swing API aren't maintained like the text part and the ugly HTML editor, what next for that ?

    Posted by: abrillant on October 23, 2005 at 11:12 AM

  • Interesting remark, now this is to the swing team to continue their job.

    Some swing API part aren't maintained like the text part and the ugly HTML editor, what next for that ?

    Except that, for my part, swing is the best GUI API.

    Posted by: abrillant on October 23, 2005 at 11:13 AM

  • 2c_armstrong:
    a couple of points: event thread is the one processing events and
    issuing painting calls. The rendering itself calls can actually be executed on a different (rendering thread).
    See this for more info:
    http://weblogs.java.net/blog/campbell/archive/2005/03/strcrazy_improv_1.html


    another point: all current video boards (drivers,etc) are designed
    to work single-threaded - they have a single pipeline. Video boards don't scale like this (yet) - no point in
    having multiple rendering threads which render to the same video board if the board's drivers will still have to deal with a single
    pipeline.

    If you're rendering to an image in system memory, it's another story.
    (and swing typically doesn't render to a system-memory-based image)


    Dmitri
    Java2D Team

    Posted by: trembovetski on October 24, 2005 at 10:56 AM


  • Dmitri - Thanks for that. Will be interesting to see how it all pans out - sounds like Intel will have to get a lot of hardware makers 'on board' [;)] for the 'many-core' era that Intel are touting to work.


    Don't think they can give up, even if they want to, as now they can't up the GHz, more cores is the only way to sell new processors.


    Posted by: c_armstrong on October 26, 2005 at 11:01 AM

  • "The JGoodies Forms framework is an excellent way to code Swing forms."


    JFormDesigner is another excellent Swing GUI Builder that simplifies layout management using the JGoodies Forms layout among others.

    Posted by: evickroy on November 02, 2005 at 09:20 PM

  • I hope my post is not too late and someone will read this :-)
    I would like to give the answer to the question "where are SWT applications?".
    Actually there is an incomplete list you can find here or, if you prefer to see screenshots, there's a pdf document.
    Someone could argue there are few compared to the swing's list. Maybe it's true, but you have to consider the time SWT is on the market, compared to swing, and the pace with which SWT (or, to be more precise, Eclipse RCP) is gaining broader adoption on the market.
    What really excite me as an Eclipse addicted is to note every day how many new application based on Eclipse RCP are under development or are just shipped. Some days ago I opened the admin console of our customer's DBMS (Pervasive) and I found myself using an Eclipse RCP workbench. Yesterday I visited the website of a GIS/mapping software my company is going to buy (FME from Safe Software) and the new version is based on Eclipse RCP... even the popular Altova's XmlSpy come with complete integration with Eclipse, as a plugin (to be honest it's also integrated with .net, but Eclipse's screenshots are more beautiful ;-)

    I really think Java was the greatest IT technology out there today, but to win on the desktop it seems to me that the right choice was SWT and the Eclipse Rich Client Platform.

    As I said, I hope to get some feedback from this post :-)

    Best regards,

    Fabio Da Soghe

    Posted by: fabiodasoghe on November 24, 2005 at 06:48 AM





Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds