 |
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.
Thanks to Jeff Dinkins for another bit of just-in-time artwork!
Bookmark blog post: del.icio.us Digg DZone Furl 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
|