Java IoT Authors: Pat Romanski, Yeshim Deniz, Zakia Bouachraoui, Liz McMillan, Elizabeth White

Related Topics: Java IoT

Java IoT: Article

Swing Is Swinging Java Out of the Desktop

Swing Is Swinging Java Out of the Desktop

Over the last few months I have made more than a passing reference to the fact that I personally feel that, in its present state, Java doesn't stand much chance on the desktop against the march of Microsoft's WinForm technology from the .NET Framework. A view, I have discovered, shared by many of you. Before I go on, let me clarify my position here so we are all on the same page. The frameworks currently available to the Java developer from the standard JDK, of course, are AWT and Swing. Naturally we are not talking about other client-side technologies, such as SWT, Thinlets, and Droplets to name a few, but more on them later.

The less said about AWT the better. It doesn't even stand up to the functionality of an HTML page with a basic FORM embedded in it. But we were told not to despair, Sun promised a much better technology was in the works. We were then presented with Swing, which definitely looked the part. However, while academically a sound design, in reality it is a dog-slow technology that suffers from far too much abstraction and object creation to be practical. Swing applications require a lot of memory and a lot of horsepower to get anywhere with them. I know there are some great examples of Swing applications, and 9 times out of 10, I am shown Forte and other heavy weight IDEs, which conversely are great examples of how much stress Swing really does put on the desktop.

There are some great analysis pieces on why Swing is slow and impractical on many Java forums around the planet, but I urge you to check out some of the discussions on JavaLobby and Slashdot. You will notice the conspicuous absence of many counter arguments.

I have already mentioned in a previous editorial how we've missed the boat with applets and how Macromedia have stolen Java's thunder with their Flash technology. It grates on my nerves every time I surf to a particularly Flash-heavy site, as this was the precise role Java was promised to deliver. I strongly believe that AWT lost us this battle, and Swing was far too heavy to be anywhere near a browser to be even considered in the running.

The title of my editorial (sadly not mine but from a poster to our Ask JDJ feature) sums it up very well: If Swing is our only hope then boy are we in trouble!

However do not despair. I have news - great news - about Java on the client side. We may have lost the first round of battles, but the war is still to be fought. We can't rely on Sun to offer us help here (in fact I am awaiting an e-mail back from the tech lead at Sun for client -side Java, who is still to defend their Swing position), so we have to look to third parties for their efforts. You won't be disappointed.

The first technology I would love to tell you about is an effort from an individual buried deep within Europe, www.thinlet.com. This is a very lightweight GUI framework, with very rich widgets that you can easily use. You describe your front-end using XML and building up an applet is very quick and easy. The size of the framework is 30KB. That's it! Check out his Amazon demo and please e-mail if you aren't impressed. This is why Java is so exciting and shouldn't be underestimated.

The second technology is the Standard Widget Toolkit (SWT) from the Eclipse project. This is a little heavier than the Thinlet technology and is there to build applications that would ordinarily be installed on the desktop. This is a direct competitor to Swing, and from all reports, does a much better job. By all accounts, running their Eclipse IDE on a 400Mhz machine whips along and is very fast, in stark contrast from running an equivalent Swing application within the same constraints.

If you need your faith in Java re-energized, then look to the community and what they are doing. If you are waiting on Sun, then don't, they are too busy fighting Microsoft than to worry about the actual technology they supposedly fighting for!

More Stories By Alan Williamson

Alan Williamson is widely recognized as an early expert on Cloud Computing, he is Co-Founder of aw2.0 Ltd, a software company specializing in deploying software solutions within Cloud networks. Alan is a Sun Java Champion and creator of OpenBlueDragon (an open source Java CFML runtime engine). With many books, articles and speaking engagements under his belt, Alan likes to talk passionately about what can be done TODAY and not get caught up in the marketing hype of TOMORROW. Follow his blog, http://alan.blog-city.com/ or e-mail him at cloud(at)alanwilliamson.org.

Comments (79) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.

Most Recent Comments
scott carter 02/21/03 06:46:00 PM EST

We're all kidding ourselves if we turn our heads and accept the performance that swing provides. Swing was clearly developed in a very elegant way, however, it is resource intensive and therefore does not provide a crisp user experience. Those of you who mentioned TogetherJ and Neatbeans as examples of "high performance" java apps have to be kidding. I use TogetherJ daily. I have a laptop with 600M of ram and it brings it to its knees. Furthermore I have to reboot my machine after I use it.

I'm a huge fan of Java, but I'm also a realist. Its obvious that the Java platform will eventually have to find an alternative to Swing in order to succeed on the desktop. In days to come, this will matter. As fans of Java, we're fortunate that Microsoft has been(past tense) so far behind in recent years and that server side programming has been the standard.

Gary Xu 02/04/03 03:06:00 PM EST

We use Swing instead of HTML/Javascript partly because of the data validation, not just for the neat screen.

How about SVG/XUL? Do they provide any easy way to data validation function? I doubt that?

My boss want to find a solution for the data-entry oriented application. Any idea?

jeremy Afflect 01/02/03 02:44:00 PM EST

try www.nexaweb.com...
SVG/XUL is the way to go...!

Frank LaRosa 10/07/02 09:57:00 PM EDT

Swing is definitely huge, slow, and complex from my perspective. Fortunately, I have little or no use for it, since most of my work is browser-based UI.

Seeing Swing, I have to say, why bother with a Java based GUI at all? Why not build your GUI in native code, and use JNI to write your business logic in Java?

Javaman 10/06/02 02:17:00 PM EDT

That is very true: you could justify the use of Java for a nice grid displayed to the user, but the users would be much better served with a grid (build in C+ or C++) component and run from a Perl script.

10/04/02 10:40:00 AM EDT

The point of Swing is NOT, imho, to be the performance absolute. It's Java, for goodness' sake - that means a Swing app should look and act the same regardless of where it's deployed. Swing does that fairly well. Thinlets leverage things Swing does, too, so using them as an example is a little disingenuous. I know programmers who can make Swing sing, even though I'm not one of them; I think Swing suffers from stupid programmers instead of bad impl.

Yves Moisan 10/04/02 10:09:00 AM EDT

I am used to developing in the Microsoft environment (oooh, I must be a bad guy ...) and I have recently gone out on the Web "shopping" for free trial versions of IDE's for developing web services for the sake of comparison. I downloaded Sun's ONE (formerly Forte)and IBM's Websphere, to talk about those two. On my K6-2 300 256 MB RAM machine (I know, this does not "meet" the minimum requirements of Sun ONE), Sun ONE was just not workable. Just sliding along the menu bar was painful, as the environment couldn't keep the pace showing me the various menu options. IBM's Websphere, in contrast, showed a very responsive environment. If one can't work with ONE, I figured, then let's not bother trying it out. It is a pity because some of the features of Sun ONE are really exciting. I just never made it to convincing me buying another 256 MB of RAM (and changing my CPU!) just to try Sun's environment.

Fletch 10/04/02 09:41:00 AM EDT

Yes it's true that swing isn't going to replace Windows anytime soon..so what. In the future users will login to their Portal ..note desktop irrelevant. Users will run multiple apps thru this interface...some of the applications will be java, some Cold Fusion, some Citrix, some .Net but all will use same security models, same look/feel, etc. By the way Cold Fusion and other easier languages will be doing 80% of the development over Java anyway....as Java is for PHD's primarily who have a year to learn it....ain't going to happen that Java is the 'primary' it's too hard.

JValdez 10/04/02 08:27:00 AM EDT

Loser. Get a life.

Ulf Johansson 10/04/02 06:23:00 AM EDT

Swing is a good GUI from the programmers standpoint. But unfortunatly, a Swing application looks awkward and clumsy. I want my program to shine. Why is a BMW Z3 roadster I nice car - because it looks good. The exterior reflects its interior. I want my program's excelent internal functions to be matched by a good look & feel. If Java/Swing cannot deliver that, it'll be forever doomed on the desktop. Java/Swing is easy and fun but when it comes to beauty you'll have to resort to Eclipse SWT. Otherwise you can forget selling it in competition with native applications.

James Strachan 10/04/02 02:34:00 AM EDT

The link below lists a variety of different technologies for creating rich user interfaces via XML markup (XUL, thinlets, JellySwing etc).

I think that is most definitely the future. Then multiple client side technologies can be supported from HTML, DHTML, proprietary MS stuff, XUL (which works natively in Mozilla and there are various other XUL clients out there) as well as Swing, SWT and Flash.

There are already many different client side technologies available; I don't see one single winner so I think we should focus more on writing for all of them (or at least some of the best ones).

Mr Evident 10/03/02 08:12:00 PM EDT

I just can't see how Java has gone so far in acceptance, having so many (all better) alternatives. For 99% of the applications, performance-wise, you can use scripting languages (Perl, Python, etc) to do what is being done (at great expense) with Java.
And this is all I have to say about Java.

Michael Alderete 10/03/02 06:40:00 PM EDT

Well, Swing may be slow/broken on other platforms, but it's actually quite good on Mac OS X (J2SE 1.3.1). You get very good performance, mostly because Apple did such a good job integrating it into the drawing environment.

Indeed, it's my understanding that Apple is working with Sun to integrate back into the primary sources many of the ideas Apple had to accelerate the performance of Swing.

Should be good news for folks, come time for J2SE 1.5 or so.

Of course, if you switch to Mac OS X, you get it today.


Carlos 09/22/02 01:33:00 PM EDT

Manolete, Manolete, si no sabes, "pa que te metes". Este buen señor, es uno más de los fantásticos gurús que florecen everywhere. Me apuesto un cataplin a que no ha utilizado ninguna de las herramientas ni escrito una sola línea utilizando Swing de un applet de gestión como "Dios manda".

Saludos a los Swing Man y que no os desanimen "artículos" como los de este bendito panplinas. bye!

Ivan Bolcina 09/20/02 05:07:00 PM EDT

I agree. You can't build a thing with AWT, since there is not support for trees,tables,....

Swing on other hand IS slow, doesnt changes when user changes his windows desktop theme and difficult to programm. I have a lot of experiences with gui programming (.net C#, VB, Java, Swing and AWT,SWT, xwWindows, html, Delphi,DirectX) and Swing is by far the most slow, difficult to learn, unnatural to learn, resource consuming and, ugly.

PLEASE let someone replace it with SWT, because when Java loses GUI war, it will also lose Server war and then, Java is dead.

Dave Orme 09/19/02 04:49:00 PM EDT

To Mr. Swing re: Blah Blah Blah

>>All of the leading enterprise software companies use Swing or AWT to develop their core tools.... big blue (IBM)<<

Wrong there--IBM is standardizing on SWT.

Try it. You'll like it!

Michael Emmel 09/19/02 04:41:00 PM EDT

You may want to check out

Having ported AWT to run on top of Swing and solved a number of the problems I believe its quit possible to have a swing desktop that out performs the "native" applications. In later versions I'll be moving java into the X11 server and adding intrinsic support for SVG. I am intrested in XML based ui designs but these fail to work graphics bases apps ala power point etc.
In fact any app that needs custom layout or widgets. XUL and the like are not yet a replacement for swing.
Think about it this way networked window server ala X11 have been around for a while the strenghs and weaknesses of remote display technologies are well known. I'm no saying XUL etc dont have a place they do and its important but they don't replace swing. If things go well there will be a natural fit between swing and SVG.
SWT has very primitive graphcis. That said having ported AWT on top of swing porting SWT on top of swing is a piece of cake. If your intrested in this work at all lobby sun to let me release it freely. All new ip is under Mozilla public license.

Vikram Kumar 09/19/02 10:40:00 AM EDT

Well I totally diagrre about all that which is being talked about Java Swings. In Fact if used correclty its performace is comparable to any desktop application and with version 1.4 Swing has definitely come a long way.

Phil 09/19/02 09:53:00 AM EDT

"...Sun must bake it EASY to create SNAPPY aplications..."

Yes, SUN, bake it easy!

nchip 09/19/02 08:02:00 AM EDT

Yes, when you master swing you cann create an adequatly responsive gui. But hat is not enough. Sun must bake it EASY to create SNAPPY aplications if they want to stay in Desktop application business... Try to look at the QT library from Trolltech for an examplehow gui programming should be done.

Masood Jan 09/19/02 04:46:00 AM EDT

Hmm so another point against java. Hey if one doenst know how to use a tool effeciently then one cant blame the tool for its perormance. Java, if not programmed effeciently would cause low speed and high memory. This is not only for swings it for java as whole.
Well .NET is a great alternative as well, but to run a simple .NET app i need to have the full .NET package which is atleast 100mb.

Aquarius 09/19/02 04:01:00 AM EDT

Anyone tried ProSyst's PGUI library? About 1.4 mb and runs faaaast. It easy to code, has far less bugs than AWT/Swing and it's richer in functionality than Swing. It's truly multithreaded and consumes far less memory than Swing. Has it's own PLAF support and the default LF supports skin files. Many, many features...
You can get the 2.0 version from www.prosyst.com or dz.prosyst.com

Also, download the mBedded Builder 5.0 IDE for Java - it's the best! It's based entirely on the PGUI library.

Java GUIs live

Aquarius 09/19/02 03:59:00 AM EDT

Anyone tried ProSyst's PGUI library? About 1.4 mb and runs faaaast. It easy to code, has far less bugs than AWT/Swing and it's richer in functionality than Swing. It's truly multithreaded and consumes far less memory than Swing. Has it's own PLAF support and the default LF supports skin files. Many, many features...
You can get the 2.0 version from www.prosyst.com or dz.prosyst.com

Also, download the mBedded Builder 5.0 IDE for Java - it's the best! It's based entirely on the PGUI library.

Java GUIs live :

Mr Swing 09/18/02 10:26:00 PM EDT

... forgot big blue (IBM)

Mr Swing 09/18/02 10:25:00 PM EDT

All of the leading enterprise software companies use Swing or AWT to develop their core tools. I don't see any of them switching to .NET or SWT - do you?

- Oracle
- Symantec
- Borland
- Tibco
- Vitria
- WebMethods
- Ariba
- i2
- Iona
- and yes,.. even Autodesk
..the list goes on and on.

Joe 09/18/02 05:07:00 PM EDT

To "Jan":

I have been programming Swing apps for four years.

By your description, it is obvious to me you are not putting threads to good use. Otherwise, your app would not lock up when your "smart agents" are working.

Properly designed and coded, Swing apps can be very quick and responsive ... I've been doing this for four years with a very complex, multi-window, distributed (CORBA), application. Now if this type of application can be made to run fast and resposively, then any application can.

Paul Coronel 09/18/02 04:34:00 PM EDT

Me parece que Swing es una tecnología magnífica de desarrollo de interfaces gráficas.

Claro se requiere mucho esfuerzo en aprenderla, pero las ventajas son innumerables. En la ciudad dónde vivo (Loja-Ecuador), cada vez más programadores están incursionando con esta tecnología, para el desarrollo de sus aplicaciones.

Sobre la rapidez, creo que es un problema parcial, ya que cada vez tenemos mejores computadoras con mucha más memoria.

Shripathi Kamath 09/18/02 02:57:00 PM EDT

...why the author's viewpoint will become a self-fulfilling prophecy. My co-workers and I create solutions in a variety of environments, not just with Java.

Our average experience in the industry is over 13 years. Consistently, we find it easier to create leaner, meaner, and faster GUIs when using non-Java solutions. While detractors might argue (without basis) that we do not 'use' Swing correctly, it is not too far-fetched to see why this very attitude will lead to Swing or AWT not getting better. Living in denial is the surest way to see Java die on the desktop.

'You are not using it correctly'. That's rich considering the extolled virtues of Java where 'you don't have to struggle as in C++ with memory management', 'much easier to learn', blah-blah-blah!

What is needed is a significantly faster Swing, a faster Java GUI. JDK 1.4 is an improvement over pre 1.4 releases, it does not yet measure up to natively written apps. I will gladly use other cross-platform techniques today, and if I only have to develop for MS Windows, I would not use Java.

Swing is ok for many applications, for graphics intensive or GUI intensive ones, it is easy to develop code, but it is incredibly hard to squeeze performance out of it. When I can get away by throwing more processor speed at the problem I do.

So if you still don't get it, try running the uber-example of great Swing the Forte IDE on a 400 MHz Pentium, and then try something archaic as Visual J++ 6.x, one take the better part of a minute plus to come up (yes, with only the essential components loaded), and the other takes seconds.

SK 09/18/02 02:41:00 PM EDT

That's like saying: "If you do not understand the point that was being made, you are an idiot".

Which btw, you are!

Steven Falise 09/18/02 12:59:00 PM EDT

I'm currently working on a large DOD combat system project which is using Java/Swing for the front-end with a C backend. I am suprised how well the java side has kept up with its' merciless C taskmaster! Take the time to learn Swing, and occasionally analyize and tune, and you'll be amazed at the capabilities of Swing.

Raz 09/18/02 12:53:00 PM EDT

...I see some pretty upset replies here...

Sandip Chitale 09/18/02 12:52:00 PM EDT

Sun released AWT with Java 1.0. I almost get a feeling that it was an experimental toolkit. However the early success of the concept of secure Applets and Java itself etc was and has been the cause of AWT's troubles. Once AWT was out the the public API became a standard and it was hard to make any changes to that public contract. I think that has been the root of all problems with GUI in Java. Obviously platform independence forced some least-common-denominator functionality also.

IMHO the main problems with AWT have been poor APIs in the area of -

1. Interaction with the desktop/browser
2. Focus Management
3. Cursor Management
4. Changes to definition of modal and non-modal dialogs
5. Control over Window Decorations
6. Keyboard Navigation
7. Popup functionality
8. Tooltips
9. Fast graphics
10. Ability to use full desktop
11. AWT Menu (and related classes) not being subclass of Component class.
12. Up and down propogation of layout
changes (weak validate/invalidate protocol)
13. Component heirarchy events
14. Unclear definition of visible, showing and displayable

I know some of these are small in the overall scheme of things...however if we are talking about GUI itself these are the things make Java GUI inferior to say Windows GUI App. I know some of these have been addressed in JDK1.4 in a non-compatible fashion.

I also know a lot of positive points about AWT (layout managers etc.) but that is not what I am talking about here.

I remember the complaints for developers when Microsoft use to break the Windows GUI APIs but that is what has allowed the evolution of MS Windows GUI.

Rod Montrose 09/18/02 12:18:00 PM EDT

Not only is Swing not the native platoform's LAF, but if you are trying to build an application for the 98% of users who don't have a Java 2 RJE installed, you must have them install the entire RJE, making your 200K download into a 10 MB download. If you try to use tools like Visual Cafe's .EXE or Excelsior JET to build a .EXE, Sun forces you to include the ENTIRE RJE in the compiled code, though 80% of it isn't needed nor could be used on other applications.

Shane Atkinson 09/18/02 11:40:00 AM EDT

All these opinions are amazing. I have been using Swing since it's inception. As we speak I am getting ready to go gold on a large desktop 100% Java Swing science application. This will make my second publicly-used large, robust client-side application using Swing. Now, at the end of the day, when I am lying in bed, thinking about my accomplishments, I have the following thoughts: 1) Swing is powerful. I am glad I invested the time in learning it. I can do anything. 2) My Swing Applications take longer to load than I would like. That sucks. I have done every trick I know. I have performed every optimization published. However, once loaded, my optimizations pay-off, and especially with 1.4 it cranks right along, without a hickup. The second launch is faster. 3) Printing sucks! Even with the new API, it still crashes on old HP injets right out of the box. I have no solution for this. I hope Sun fixes it. I am a foot away from doing some JNI for those issues. That is my primary gripe.

Otherwise, other than the loading and printing issues, Swing is great and extreamely powerful for doing GUIs for the Desktop. Forget it on the browser, too big.

Jonathan Pierce 09/18/02 11:39:00 AM EDT


Thanks for your support to my argument about WinForms .NET apps being the best alternative for the desktop. I think we'll see more apps deployed as .NET WinForms on the desktop communicating with java based server side middleware over web services. .NET Framework usage will become widespread since most desktop Windows apps will eventually use it, and Windows has the majority of the installed OS desktop market.

I think the best strategy for java on the desktop would be to try to make the .NET Framework implementation CLR code accessible to java 1.4 on Windows so it could be linked with other 1.4 java code.

The cross-platform issue will still exist however, until other OS's like MacOS and Linux implement the .NET Framework API and CLR. This may eventually happen, since it would automatically make all managed code Windows .NET apps portable to their OS and processor.

Nathan Revo 09/18/02 11:11:00 AM EDT

Java is a wonderful language and I prefer it for most applications I write. IMHO, the best Swing app dosen't perform as well as a comparable VB or C/C++ app. Swing is great, but try convincing a non-technical user(ex. my grandparents) why "X" app (in Java) runs slow and "Y" app (in C) runs fine on his/her $500 Compaq special.

Most Java advocates are great programmers, and rightfully so, Java is a wonderful language. However, when a battle ensues our emotions take over. This is not a way to win a battle. We need to advocate Java's strengths, admit its weaknesses and understand that others toys have good points too.

One question: How many sucessful lawyers do you know that show emotion in court.

gou 09/18/02 10:48:00 AM EDT

I see a good point with separating the presentation from the logic like thinlet does..

See the amazon demo from www.servefront.com for another example.
With it, your application looks and works like a mutant between a desktop application and a web server app.

They even have a GUI designer using which you can create the user interface dynamically in minutes rather than hours. (although i had to send them an email to get a preview version)

J Simmons 09/18/02 10:25:00 AM EDT

Nobody has mentioned the lightweight component set I wrote yet, so I guess I'll have to. NiceSTEP (http://nicestep.sourceforge.net) is a set of lightweight components that mimics the look and feel of NeXTSTEP. It is not a pluggable look and feel, but is instead a complete set of components that can be used with or without Swing.

The look and feel is distinctive and has some useability advantages (particularly the scrollbars). Performance is decent. I routinely run NiceSTEP apps on my IBM Aptiva, a Pentium with 64mb of RAM that runs Linux. While startup time is slow, the apps themselves run fine.

Even if NeXTSTEP is not your thing, you might want to check out this project to see how easy Sun has made it to write your own set of lightweight components.

Chris Wilson 09/18/02 10:07:00 AM EDT

If it hasn't already, SWT and Eclipse will emerge as the clear choice. Not only for technical reasons, but also for the broad standardization the java development community requires in order to compete on the desktop. Eclipse is the best political play versus .NET.

Van Woods 09/18/02 09:47:00 AM EDT

Check out the GUI tutorial, the jGoodies Looks (which makes up for the L&F issues that Swing has done so poorly with), and the framework. The applications provided are great examples (and useful to boot...).


IMO, lack of a Sun provided application framework makes reinvention a perpetual task. I've been writing Java client-side apps for quite a while, and I enjoy writing framework type code, but that is not what I am paid to do.

Yes, I know, I know, Netbeans, Eclipse, etc, etc. Yes, there are many excellent frameworks. But when it comes to medium sized applications, these are typically overkill, or require quite a bit of learning.

1. Usability is the closest thing to the user's experience with Java. You don't get that right and you will alienate them from step 1. 2. An application framework for small-medium sized apps from Sun 'out of the box' would allow a majority of developers to focus on use cases and business logic, not plumbing.

It's kind of telling when Sun's own Star/OpenOffice doesn't use Swing...

David Moffat 09/18/02 09:41:00 AM EDT

Sometimes I think Alan Williamson is the John Dvorak of JDJ, a curmudgeon put in place simply to stir up hornet's nests to increase readership. People on the inside know better, but people on the outside perhaps take this as a sign of Java's failure. Yet Java is one of the most successful (and useful, and programmable) languages ever.

Saying Swing (or Java) is "too slow" is like saying a car is "too small"; for what purpose? The consensus of this mailbag is that Swing is just fine for most interfaces.

Swing is hard to learn, and hard to do well, like ALL of programming. Conscientious programmers find and use shortcuts to speed up all their work, like GUI builders, various code generators or simple copy and paste.

Furthermore,... Oh, darn! I took Alan's bai

David Moffat 09/18/02 09:32:00 AM EDT

Sometimes I think Alan Williamson is the John Dvorak of JDJ, a curmudgeon put in place simply to stir up hornet's nests to increase readership. People on the inside know better, but people on the outside perhaps take this as a sign of Java's failure. Yet Java is one of the most successful (and useful, and programmable) languages ever.

Saying Swing (or Java) is "too slow" is like saying a car is "too small"; for what purpose? The consensus of this mailbag is that Swing is just fine for most interfaces.

Swing is hard to learn, and hard to do well, like ALL of programming. Conscientious programmers find and use shortcuts to speed up all their work, like GUI builders, various code generators or simple copy and paste.

Furthermore,... Oh, darn! I took Alan's bait

Alex Xia 09/18/02 08:50:00 AM EDT

If Java can be mastered by only a few guru programmers, then Java is doomed and even Sun is doomed because I don't think Sun can make a profit by selling just a couple of license to those guru programmers. Please remember MS OS won by popularity, not by best. You need to switch to .Net before you invest a lot of money on Java.

Kevin 09/18/02 08:04:00 AM EDT

I read a post above saying that WinForms were better... I've to admit this is true!!! I've programmed with awt, swing, swt, and also with winforms(visualStudio and sharpdevelop), and the simplest way and more intuitive way to develop a GUI is unfortunately the M$ solution :-( In less than one hour it is very simple to undetstand how it is architectured, and the tools above are really good!!! Maybe the solution could be to develop a GUI library which matches the WinForms API, why not by suing SWT as an underlying layer...

Sal Scotto 09/18/02 07:42:00 AM EDT

Skin LF, a replacement "skin" to Swing runs seems to run much faster than the default look and feel from Sun. http://www.l2fprod.com/ it also seems to use less memory than than the default look and feel.

Paul Franz 09/18/02 06:59:00 AM EDT

Problem with SWT, GTK+ and whatever else that requires native code is that the cross platform support is not complete. For example, SWT just starting supporting OS X. But my Swing application needs to run under Mac OS 9, Linux, Windows and Solaris. So you gotta hope that all of the user platforms are supported. That is the one thing that Swing has a leg up on other implementations. Yes, Thinlet and Zaval are based on AWT the question is do they have all of the components/features that Swing has and that the normal GUI Java programmer have grown to depend on? I don't know the answer but I am willing to look.

Alexander Jerusalem 09/18/02 06:18:00 AM EDT

The problem with Swing is not performance. Rather it's memory usage: For some reason every Swing app keeps eating as much memory as it can get until you minimize the window. This problem accumulates when more than one Swing app is running.

Then there are some things that I DON'T consider problems:

* Startup times may be a problem for small utilities that are often started and stopped but otherwise it's just a design bug to do all kinds of stuff on startup. No one needs to do that and it's not a problem specific to Swing.

* Look and Feel, well, has anybody thought about look and feel standards for web applications? The web is a complete look and feel mess. Nevertheless it's popular.

* Low programmer productivity. That is a problem but it's not a Swing problem, it's a tools problem.

Rideau 09/18/02 05:26:00 AM EDT

On my project we have developed a client side application in Swing with 1500 classes.
Our main conclusion are that Swing is very powerful and highly flexible.
We use Visual Age for Java and, I must admit, we have developed a few framework classes to make the use of Swing easier for junior developer. But in those conditions I think, it is very usable and allows a high prodctivity.
Regarding the performance, I agree that if you have less than 800Ghz and 128Mb on you desktop you will be a bit frustrated. But if you have a 1Ghz + 256Mb desktop that is now the market standard you do not mind to use Swing. I really think that considring the JVM improvements and the renewal of computer park, nobody will complain about Swing within on year!

Ralf Bund 09/18/02 04:42:00 AM EDT

There are several things stinking with Swing:

1. I want to program business logic. That's what I'm paid for. The framework must work without studying it.
2. In German there is a proverb "das Rad neu erfinden" (reenventing the weel) and this is what the Swing developer are permanently doing. Platforms with a graphical interface do have the features you need, you've just to use them.
3. GUI's are part of the OS. Therefore the right place to handel it would be the virtual machine mapping the requests to existing components of the OS or emulating components not available.

I think, that SWT is following the right approach.

Jan 09/18/02 04:24:00 AM EDT

and every day I wish some vendor decided to provide me a Java IDE, which would be 100% native code. At the moment I'm stuck with a memory-hungry Swing beast, which can't even keep track of my menu selections and the smart agents trying to guess the next method or a class I'm intending to use will halt the app completely.

While running these Swing apps, I can barely notice I have a powerful Desktop for development use.

IoT & Smart Cities Stories
Digital Transformation: Preparing Cloud & IoT Security for the Age of Artificial Intelligence. As automation and artificial intelligence (AI) power solution development and delivery, many businesses need to build backend cloud capabilities. Well-poised organizations, marketing smart devices with AI and BlockChain capabilities prepare to refine compliance and regulatory capabilities in 2018. Volumes of health, financial, technical and privacy data, along with tightening compliance requirements by...
Charles Araujo is an industry analyst, internationally recognized authority on the Digital Enterprise and author of The Quantum Age of IT: Why Everything You Know About IT is About to Change. As Principal Analyst with Intellyx, he writes, speaks and advises organizations on how to navigate through this time of disruption. He is also the founder of The Institute for Digital Transformation and a sought after keynote speaker. He has been a regular contributor to both InformationWeek and CIO Insight...
Digital Transformation is much more than a buzzword. The radical shift to digital mechanisms for almost every process is evident across all industries and verticals. This is often especially true in financial services, where the legacy environment is many times unable to keep up with the rapidly shifting demands of the consumer. The constant pressure to provide complete, omnichannel delivery of customer-facing solutions to meet both regulatory and customer demands is putting enormous pressure on...
Early Bird Registration Discount Expires on August 31, 2018 Conference Registration Link ▸ HERE. Pick from all 200 sessions in all 10 tracks, plus 22 Keynotes & General Sessions! Lunch is served two days. EXPIRES AUGUST 31, 2018. Ticket prices: ($1,295-Aug 31) ($1,495-Oct 31) ($1,995-Nov 12) ($2,500-Walk-in)
Andrew Keys is Co-Founder of ConsenSys Enterprise. He comes to ConsenSys Enterprise with capital markets, technology and entrepreneurial experience. Previously, he worked for UBS investment bank in equities analysis. Later, he was responsible for the creation and distribution of life settlement products to hedge funds and investment banks. After, he co-founded a revenue cycle management company where he learned about Bitcoin and eventually Ethereal. Andrew's role at ConsenSys Enterprise is a mul...
Business professionals no longer wonder if they'll migrate to the cloud; it's now a matter of when. The cloud environment has proved to be a major force in transitioning to an agile business model that enables quick decisions and fast implementation that solidify customer relationships. And when the cloud is combined with the power of cognitive computing, it drives innovation and transformation that achieves astounding competitive advantage.
Nicolas Fierro is CEO of MIMIR Blockchain Solutions. He is a programmer, technologist, and operations dev who has worked with Ethereum and blockchain since 2014. His knowledge in blockchain dates to when he performed dev ops services to the Ethereum Foundation as one the privileged few developers to work with the original core team in Switzerland.
Machine learning has taken residence at our cities' cores and now we can finally have "smart cities." Cities are a collection of buildings made to provide the structure and safety necessary for people to function, create and survive. Buildings are a pool of ever-changing performance data from large automated systems such as heating and cooling to the people that live and work within them. Through machine learning, buildings can optimize performance, reduce costs, and improve occupant comfort by ...
René Bostic is the Technical VP of the IBM Cloud Unit in North America. Enjoying her career with IBM during the modern millennial technological era, she is an expert in cloud computing, DevOps and emerging cloud technologies such as Blockchain. Her strengths and core competencies include a proven record of accomplishments in consensus building at all levels to assess, plan, and implement enterprise and cloud computing solutions. René is a member of the Society of Women Engineers (SWE) and a m...
IoT is rapidly becoming mainstream as more and more investments are made into the platforms and technology. As this movement continues to expand and gain momentum it creates a massive wall of noise that can be difficult to sift through. Unfortunately, this inevitably makes IoT less approachable for people to get started with and can hamper efforts to integrate this key technology into your own portfolio. There are so many connected products already in place today with many hundreds more on the h...