adam bien's blog

Six Swing Lies: 📎

  1. Swing is slow:
    One of my first serious Swing projects started for me about about 1999 / 2001. At that time we had P4 400 MHz machines with 128 MB - 256 MB RAM. We had performance problems with almost everything but not Swing. Of course from time to time someone managed to block the UI-thread, but I wouldn't categorize that as Swing performance issue.
  2. Swing is hard to understand and too complex:
    From my perspective it is straightforward. The UI-components throw many different, fine grained events, but this is needed for more serious applications. I introduced Swing to some non-Java developers and they were able to built amazingly complex Swing apps after a short period of time.
  3. Swing doesn't looks good:
    In general: Swing can look as good, as your designed skills allow. There are no limits. Even better: there are already fantastic, free look and feels out there like: substance, nimbus (comes JDK 1.6.u10) or napkin (:-)). I have a task for you as well: Find a "power" IntelliJ developer. Say to him "IntelliJ looks like crap". Way for reaction but be guarded :-).
  4. Swing doesn't integrate well with the operating system, doesn't looks natively:
    And Eclipse, Office 2007 do? E.g. Eclipse Forms looks good, but not like Vista. There was no requirement I remember so far in my projects so far. Neither in Eclipse RCP, nor in Netbeans RCP projets. I hear this argument a lot at conferences, but not in projects :-). Btw. OS integration was greatly improved in JDK 1.6u10.
  5. JavaFX will swallow Swing:
    Will JPA swallow JDBC, Swing Java 2D or JSF Servlets? Most of the JavaFX widgets are Swing based. In future new widgets will be developed in JavaFX entirely for sure. But this is a good thing. Right now Swing is widely used by big companies.
  6. Swing is EOL / will die because SwingX is no more founded by Sun:
    Swing is part of JDK. Main criticiscm of the "deprecated" mechanism in Java is the actually nothing was removed yet. Event new tools like JConsole or VisualVM shipped with JDK 1.6+  are Swing based. See this post as well. Netbeans is Swing based also (and looks great).
This post was inspired by the the following comment.