Future of GUI development in Java?

soc picture soc · Jul 17, 2010 · Viewed 11.1k times · Source

Considering that

  • Sun/Oracle decided to not develop Swing any further after they "invented" JavaFX
  • JavaFX doesn't really work and some consider it a failure already
  • the not really platform-independent nature of SWT, the manual task to dispose GUI elements and the necessity to bundle platform-specific libraries

is there another way out?

If I would like to do GUI development on the JVM

  • with a good API (Swing and SWT are not bad, but they are not really good either.)
  • which "feels" responsive (still a problem today with Swing and SWT, despite the claims that this is solved.)
  • which won't be obsolete in a few years what decision should I make?

Is there even a third option available or a possibility there might be one in the future?

An option

  • which is fast and responsive (Not Swing's ideology of "If it's not fast, it is the developer's fault")
  • with native look and feel
  • with a single library which runs on all platforms

Is this realistic?

Thanks!

=========

To clarify: If I have to start a new software project on the JVM, there are several existing options, like using SWT or Swing, using Swing with third-party libraries like SwingX, JIDE, JGoodies, Flamingo or using application frameworks like Netbeans Platform or Eclipse RCP. Is there a supported/suggested way which weakens the pain normally associated with Java GUI development?

Answer

Istao picture Istao · Jul 17, 2010

The answer is prefer swing, I think.

  • since 1.4 there are big progress on awt (sun do that because java fx need awt, fortunately)
  • since 1.5 big progress in thread managment (SwingWorker and concurrents things)
  • swing is excellent, responsive (what the problem with developper fault ? ), native l&f, and so on
  • there are excellent libraries, like swingx, trident, etc, and platform, like netbeans.

Of course it is a mature technology (a little old), but I know nothing else. It will be cobol of GUI development :-)