Welcome!

Java IoT Authors: Liz McMillan, Elizabeth White, Kevin Jackson, Yeshim Deniz, Pat Romanski

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
"MobiDev is a Ukraine-based software development company. We do mobile development, and we're specialists in that. But we do full stack software development for entrepreneurs, for emerging companies, and for enterprise ventures," explained Alan Winters, U.S. Head of Business Development at MobiDev, in this SYS-CON.tv interview at 20th Cloud Expo, held June 6-8, 2017, at the Javits Center in New York City, NY.
SYS-CON Events announced today that Cloud Academy named "Bronze Sponsor" of 21st International Cloud Expo which will take place October 31 - November 2, 2017 at the Santa Clara Convention Center in Santa Clara, CA. Cloud Academy is the industry’s most innovative, vendor-neutral cloud technology training platform. Cloud Academy provides continuous learning solutions for individuals and enterprise teams for Amazon Web Services, Microsoft Azure, Google Cloud Platform, and the most popular cloud com...
SYS-CON Events announced today that TechTarget has been named “Media Sponsor” of 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. TechTarget storage websites are the best online information resource for news, tips and expert advice for the storage, backup and disaster recovery markets.
SYS-CON Events announced today that CA Technologies has been named "Platinum Sponsor" of SYS-CON's 21st International Cloud Expo®, which will take place October 31-November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. CA Technologies helps customers succeed in a future where every business - from apparel to energy - is being rewritten by software. From planning to development to management to security, CA creates software that fuels transformation for companies in the applic...
SYS-CON Events announced today that Telecom Reseller has been named “Media Sponsor” of 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. Telecom Reseller reports on Unified Communications, UCaaS, BPaaS for enterprise and SMBs. They report extensively on both customer premises based solutions such as IP-PBX as well as cloud based and hosted platforms.
The current age of digital transformation means that IT organizations must adapt their toolset to cover all digital experiences, beyond just the end users’. Today’s businesses can no longer focus solely on the digital interactions they manage with employees or customers; they must now contend with non-traditional factors. Whether it's the power of brand to make or break a company, the need to monitor across all locations 24/7, or the ability to proactively resolve issues, companies must adapt to...
SYS-CON Events announced today that TMC has been named “Media Sponsor” of SYS-CON's 21st International Cloud Expo and Big Data at Cloud Expo, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Global buyers rely on TMC’s content-driven marketplaces to make purchase decisions and navigate markets. Learn how we can help you reach your marketing goals.
Amazon started as an online bookseller 20 years ago. Since then, it has evolved into a technology juggernaut that has disrupted multiple markets and industries and touches many aspects of our lives. It is a relentless technology and business model innovator driving disruption throughout numerous ecosystems. Amazon’s AWS revenues alone are approaching $16B a year making it one of the largest IT companies in the world. With dominant offerings in Cloud, IoT, eCommerce, Big Data, AI, Digital Assista...
We build IoT infrastructure products - when you have to integrate different devices, different systems and cloud you have to build an application to do that but we eliminate the need to build an application. Our products can integrate any device, any system, any cloud regardless of protocol," explained Peter Jung, Chief Product Officer at Pulzze Systems, in this SYS-CON.tv interview at @ThingsExpo, held November 1-3, 2016, at the Santa Clara Convention Center in Santa Clara, CA
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.
SYS-CON Events announced today that Conference Guru has been named “Media Sponsor” of 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. A valuable conference experience generates new contacts, sales leads, potential strategic partners and potential investors; helps gather competitive intelligence and even provides inspiration for new products and services. Conference Guru works with conference organi...
Multiple data types are pouring into IoT deployments. Data is coming in small packages as well as enormous files and data streams of many sizes. Widespread use of mobile devices adds to the total. In this power panel at @ThingsExpo, moderated by Conference Chair Roger Strukhoff, panelists looked at the tools and environments that are being put to use in IoT deployments, as well as the team skills a modern enterprise IT shop needs to keep things running, get a handle on all this data, and deliver...
SYS-CON Events announced today that Enzu will exhibit at SYS-CON's 21st Int\ernational Cloud Expo®, which will take place October 31-November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Enzu’s mission is to be the leading provider of enterprise cloud solutions worldwide. Enzu enables online businesses to use its IT infrastructure to their competitive advantage. By offering a suite of proven hosting and management services, Enzu wants companies to focus on the core of their ...
In his session at @ThingsExpo, Eric Lachapelle, CEO of the Professional Evaluation and Certification Board (PECB), provided an overview of various initiatives to certify the security of connected devices and future trends in ensuring public trust of IoT. Eric Lachapelle is the Chief Executive Officer of the Professional Evaluation and Certification Board (PECB), an international certification body. His role is to help companies and individuals to achieve professional, accredited and worldwide re...
IoT solutions exploit operational data generated by Internet-connected smart “things” for the purpose of gaining operational insight and producing “better outcomes” (for example, create new business models, eliminate unscheduled maintenance, etc.). The explosive proliferation of IoT solutions will result in an exponential growth in the volume of IoT data, precipitating significant Information Governance issues: who owns the IoT data, what are the rights/duties of IoT solutions adopters towards t...
With the introduction of IoT and Smart Living in every aspect of our lives, one question has become relevant: What are the security implications? To answer this, first we have to look and explore the security models of the technologies that IoT is founded upon. In his session at @ThingsExpo, Nevi Kaja, a Research Engineer at Ford Motor Company, discussed some of the security challenges of the IoT infrastructure and related how these aspects impact Smart Living. The material was delivered interac...
The current age of digital transformation means that IT organizations must adapt their toolset to cover all digital experiences, beyond just the end users’. Today’s businesses can no longer focus solely on the digital interactions they manage with employees or customers; they must now contend with non-traditional factors. Whether it's the power of brand to make or break a company, the need to monitor across all locations 24/7, or the ability to proactively resolve issues, companies must adapt to...
With major technology companies and startups seriously embracing Cloud strategies, now is the perfect time to attend 21st Cloud Expo October 31 - November 2, 2017, at the Santa Clara Convention Center, CA, and June 12-14, 2018, at the Javits Center in New York City, NY, and learn what is going on, contribute to the discussions, and ensure that your enterprise is on the right path to Digital Transformation.
No hype cycles or predictions of zillions of things here. IoT is big. You get it. You know your business and have great ideas for a business transformation strategy. What comes next? Time to make it happen. In his session at @ThingsExpo, Jay Mason, Associate Partner at M&S Consulting, presented a step-by-step plan to develop your technology implementation strategy. He discussed the evaluation of communication standards and IoT messaging protocols, data analytics considerations, edge-to-cloud tec...
When growing capacity and power in the data center, the architectural trade-offs between server scale-up vs. scale-out continue to be debated. Both approaches are valid: scale-out adds multiple, smaller servers running in a distributed computing model, while scale-up adds fewer, more powerful servers that are capable of running larger workloads. It’s worth noting that there are additional, unique advantages that scale-up architectures offer. One big advantage is large memory and compute capacity...