For my the last entry about SWT I got some interesting comments why developers prefer SWT/JFace over Swing. Although there were many reactions for this entry, no one seems to really like SWT. Many developers argued (simplified): RCP is great, so I've to live with SWT, which is also interesting statement for new "green field" projects. Many developers converted from Swing to SWT because of performance problems in the past (which is pointless now, or at least in the Java SE 6 space). Some found JFace "refreshing" (is it positive or negative? :-)).
I prefer Swing because:
- Swing (tutorials, books, articles and screencast) is better documented, than SWT, which is extremely important in real world.
- I do not like the low level SWT-API (especially the actually undocumented bit or-ing stuff) and dispose invocations (my personal opinion - it is not an objective argument here)
- I know, that almost everything is possible (because it is not native) and extendible in Swing. I had always strange requirements, especially with tables and trees, which were not simple realizable with SWT.
...and I still do not understand the following SWT-arguments:
- Swing is too slow (I never had performance problems, or all problems were cause with slow server, bad transaction implementation, but never by the presentation tier)
- Swing does not look native (looks Eclipse natively :-))?
- SWT is easier or straight forward. (perhaps for "hello worlds" :-))
Because of the great industry support for Eclipse, I would in some cases still see advantage of using RCP (especially the existing workbench functionality). But SWT will still remain a drawback and huge disadvantage in my eyes.
...and matisse is really great :-).