Review/notes from May 1 meeting
On Tuesday, May 1, Carlus Henry from the Grand Rapids Java User Group, presented "Eclipse for SWT Development" at the Ann Arbor Java User Group. He declared himself an Eclipse Enthusiast. He drew a distinction between an evangelist and an enthusiast and declared that evangelists get paid for their admiration and enthusiasm!
In any case, he was definitely enthusiastic about both SWT (Standard Widget Toolkit) and Eclipse. Since I use Eclipse, but all of my GUI building has been in Swing, so I was really interested to hear more about SWT.
SWT is pretty famous for its ability to maintain the native look and feel, and performance, by harnessing the JNI (Java Native Interface). I recently met Josh Marinacci, of the Swing team, and I've seen what really cool things can be developed with Swing, so I definitely think that Sun is not sitting on their hands in this regard. Over at SwingLabs, there's some very cool stuff to look at, including the Nimbus Look and Feel.
SWT is used for Eclipse plugins and RCP (Rich Client Platform, for which SWT is the widget toolkit). Eclipse itself is written using RCP. One disadvantage of SWT over Eclipse is in terms of Resource Management. Native calls mean that managing resources become the programmer's responsibility, specifically. The parent-child relationship (tree structure of widgets) does make this easy, but you have to know to manage it.
From Carlus' demo, I didn't feel that the layout was any less cumbersome in SWT than in Swing, just different, and so an additional learning curve is required on top of Swing layout management, if you already understand that.
I didn't leave the meeting hot to try SWT any time soon. Honestly, with what I've seen Josh and SwingLabs doing, I'm really pleased with the new things that you can accomplish in Swing, and I'm looking forward to seeing the screencast from his "just 1 line of new code" at JavaOne this week.
It took me a while to get this review out, and in the meantime, IBM pulled its support for the Visual Editor in Eclipse (GUI builder for SWT applications). I'm left wondering what that means, especially considering Matisse is such a full featured editor for Swing development (see *** Wall (of the Java Posse)'s article on using Matisse)
I really enjoy meeting Carlus. He's an excellent speaker and I look forward to hearing him speak again sometime soon. He's also heavily involved in the software community in Grand Rapids and he and I have promised to share resources to do what we can to promote software development, share JUG speakers, etc. in Michigan. And I sure hope that Carlus sends an abstract for CodeMash 2008!