Welcome!

Java IoT Authors: Pat Romanski, Liz McMillan, Elizabeth White, Yeshim Deniz, Frank Lupo

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
http://janux.sf.net

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
- BEA
- 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

Kevin,

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...).

http://www.jgoodies.com

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.

@ThingsExpo Stories
SYS-CON Events announced today that Daiya Industry will exhibit at the Japanese Pavilion at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Ruby Development Inc. builds new services in short period of time and provides a continuous support of those services based on Ruby on Rails. For more information, please visit https://github.com/RubyDevInc.
As businesses evolve, they need technology that is simple to help them succeed today and flexible enough to help them build for tomorrow. Chrome is fit for the workplace of the future — providing a secure, consistent user experience across a range of devices that can be used anywhere. In her session at 21st Cloud Expo, Vidya Nagarajan, a Senior Product Manager at Google, will take a look at various options as to how ChromeOS can be leveraged to interact with people on the devices, and formats th...
SYS-CON Events announced today that Yuasa System will exhibit at the Japan External Trade Organization (JETRO) Pavilion at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Yuasa System is introducing a multi-purpose endurance testing system for flexible displays, OLED devices, flexible substrates, flat cables, and films in smartphones, wearables, automobiles, and healthcare.
SYS-CON Events announced today that Taica will exhibit at the Japan External Trade Organization (JETRO) Pavilion at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Taica manufacturers Alpha-GEL brand silicone components and materials, which maintain outstanding performance over a wide temperature range -40C to +200C. For more information, visit http://www.taica.co.jp/english/.
As hybrid cloud becomes the de-facto standard mode of operation for most enterprises, new challenges arise on how to efficiently and economically share data across environments. In his session at 21st Cloud Expo, Dr. Allon Cohen, VP of Product at Elastifile, will explore new techniques and best practices that help enterprise IT benefit from the advantages of hybrid cloud environments by enabling data availability for both legacy enterprise and cloud-native mission critical applications. By rev...
Organizations do not need a Big Data strategy; they need a business strategy that incorporates Big Data. Most organizations lack a road map for using Big Data to optimize key business processes, deliver a differentiated customer experience, or uncover new business opportunities. They do not understand what’s possible with respect to integrating Big Data into the business model.
Recently, REAN Cloud built a digital concierge for a North Carolina hospital that had observed that most patient call button questions were repetitive. In addition, the paper-based process used to measure patient health metrics was laborious, not in real-time and sometimes error-prone. In their session at 21st Cloud Expo, Sean Finnerty, Executive Director, Practice Lead, Health Care & Life Science at REAN Cloud, and Dr. S.P.T. Krishnan, Principal Architect at REAN Cloud, will discuss how they b...
Enterprises have taken advantage of IoT to achieve important revenue and cost advantages. What is less apparent is how incumbent enterprises operating at scale have, following success with IoT, built analytic, operations management and software development capabilities – ranging from autonomous vehicles to manageable robotics installations. They have embraced these capabilities as if they were Silicon Valley startups. As a result, many firms employ new business models that place enormous impor...
SYS-CON Events announced today that Dasher Technologies will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 - Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Dasher Technologies, Inc. ® is a premier IT solution provider that delivers expert technical resources along with trusted account executives to architect and deliver complete IT solutions and services to help our clients execute their goals, plans and objectives. Since 1999, we'v...
SYS-CON Events announced today that MIRAI Inc. will exhibit at the Japan External Trade Organization (JETRO) Pavilion at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. MIRAI Inc. are IT consultants from the public sector whose mission is to solve social issues by technology and innovation and to create a meaningful future for people.
SYS-CON Events announced today that TidalScale, a leading provider of systems and services, will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 - Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. TidalScale has been involved in shaping the computing landscape. They've designed, developed and deployed some of the most important and successful systems and services in the history of the computing industry - internet, Ethernet, operating s...
SYS-CON Events announced today that TidalScale will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. TidalScale is the leading provider of Software-Defined Servers that bring flexibility to modern data centers by right-sizing servers on the fly to fit any data set or workload. TidalScale’s award-winning inverse hypervisor technology combines multiple commodity servers (including their ass...
Amazon is pursuing new markets and disrupting industries at an incredible pace. Almost every industry seems to be in its crosshairs. Companies and industries that once thought they were safe are now worried about being “Amazoned.”. The new watch word should be “Be afraid. Be very afraid.” In his session 21st Cloud Expo, Chris Kocher, a co-founder of Grey Heron, will address questions such as: What new areas is Amazon disrupting? How are they doing this? Where are they likely to go? What are th...
SYS-CON Events announced today that IBM has been named “Diamond Sponsor” of SYS-CON's 21st Cloud Expo, which will take place on October 31 through November 2nd 2017 at the Santa Clara Convention Center in Santa Clara, California.
Infoblox delivers Actionable Network Intelligence to enterprise, government, and service provider customers around the world. They are the industry leader in DNS, DHCP, and IP address management, the category known as DDI. We empower thousands of organizations to control and secure their networks from the core-enabling them to increase efficiency and visibility, improve customer service, and meet compliance requirements.
Join IBM November 1 at 21st Cloud Expo at the Santa Clara Convention Center in Santa Clara, CA, and learn how IBM Watson can bring cognitive services and AI to intelligent, unmanned systems. Cognitive analysis impacts today’s systems with unparalleled ability that were previously available only to manned, back-end operations. Thanks to cloud processing, IBM Watson can bring cognitive services and AI to intelligent, unmanned systems. Imagine a robot vacuum that becomes your personal assistant tha...
SYS-CON Events announced today that IBM has been named “Diamond Sponsor” of SYS-CON's 21st Cloud Expo, which will take place on October 31 through November 2nd 2017 at the Santa Clara Convention Center in Santa Clara, California.
In his Opening Keynote at 21st Cloud Expo, John Considine, General Manager of IBM Cloud Infrastructure, will lead you through the exciting evolution of the cloud. He'll look at this major disruption from the perspective of technology, business models, and what this means for enterprises of all sizes. John Considine is General Manager of Cloud Infrastructure Services at IBM. In that role he is responsible for leading IBM’s public cloud infrastructure including strategy, development, and offering ...
SYS-CON Events announced today that N3N will exhibit at SYS-CON's @ThingsExpo, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. N3N’s solutions increase the effectiveness of operations and control centers, increase the value of IoT investments, and facilitate real-time operational decision making. N3N enables operations teams with a four dimensional digital “big board” that consolidates real-time live video feeds alongside IoT sensor data a...
In a recent survey, Sumo Logic surveyed 1,500 customers who employ cloud services such as Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform (GCP). According to the survey, a quarter of the respondents have already deployed Docker containers and nearly as many (23 percent) are employing the AWS Lambda serverless computing framework. It’s clear: serverless is here to stay. The adoption does come with some needed changes, within both application development and operations. Tha...