Over a million developers have joined DZone.

The Swing Sacrifice

DZone's Guide to

The Swing Sacrifice

· Java Zone ·
Free Resource

"I love writing authentication and authorization code." ~ No Developer Ever. Try Okta Instead.

As someone who works primarily on desktop application development, I was disappointed to read Kirill's blog today, where he discusses how JavaFX is taking all the focus from new Swing development.

While I'll admit that getting JavaFX 1.0 released will be great, and that we should finally see Java UI's hitting more platforms and devices, I'm not sure it's a great move to have only bug fixing and support as the Swing activities at Sun.

Now Sun is no longer funding SwingX, it's plain to see that all the money is on JavaFX. Kirill summarises this nicely:

I don’t know what the future holds for JavaFX. Sun is heavily betting on it, and nobody wants to have their Nomad moment forever archived on the Internet. All i know is that JavaFX has effectively halted all core Swing development. Over the last 18 months, we have seen significant architectural initiatives (JSR 295 and JSR 296) changing leads and frozen. All client-facing improvements in Java2D, AWT and Swing in Java 6 Update 10 are completely driven by the requirements of JavaFX. In Richard’s own words (the same thread on SwingX funding):

Swing is part of the JDK. It isn’t going away any time soon. For a great many large enterprise applications Swing is the best cross platform toolkit available. We’ll continue to support and work on fixing bugs in the JDK.

Will SwingX development continue despite not having this funding?

While it's true that technologies come and go and we need to move with the times, something still bothers me about this phasing out of Swing. I guess it was inevitable, I just hope JavaFX will be worth it.

"I love writing authentication and authorization code." ~ No Developer Ever. Try Okta Instead.


Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}