Take the 2-minute tour ×

I like to write small GUI applications using Java and Swing, something like a client for the social website Tumblr

Should I use Eclipse RCP or the Netbeans platform?

And what benefits do I get from using either one over using plain swing/SWT?

Do RCP applications require more dependencies than those developed using Swing or SWT?

share|improve this question
add comment

2 Answers

up vote 5 down vote accepted

Deckard had a pretty good response. I'd like to add that it's worth considering how this project will be maintained down the road. Consider how many of your coworkers (or developers in general) are familiar with Swing et al vs. how many are familiar with RCP. My organization had some headaches when we wanted to dust off an old RCP application. It turns out that most of the people involved with designing the project had either left the company or moved into non-developmental roles. Our in-house expertise was more in Swing, so this made things more difficult than they needed to be. We also had a desire to integrate parts of it with a separate, Swing-based application, and again the fact that the old app was an RCP application made things difficult.

I'm not saying you shouldn't create an RCP app, but these are some things you might want to consider first.

share|improve this answer
add comment

Essentially, when you use Swing, you have to set everything up manually: you define the Window, each area and control, inside that again you define each control. For every control and area you define handlers to deal with changes and user actions, etc. You need to do this because nothing will work unless you explicitly define and implement it.

The RCP allows this as well, but comes with a bunch of higher level components that do a lot of the common stuff. For example, it's only a couple configuration steps to define a multiple document interface (MDI) or to add toolbars with icons that launch external plug-ins when you click on them.

Since the RCP is what powers Eclipse, the basic blocks tend to focus on applications that have needs similar to a development environment: extensive text editing in all kinds of windows, using all kinds of context-sensitive menus/toolbars/operations/etc.

So if you want to make a small custom application with lots of non-standard stuff in it (such as a flashy Twitter client that has all kinds of custom-drawn or skinnable controls), there's no real point in using RCP. In fact, it will drag 5+MB of plug-ins into your application without any real benefit.

If you want to make an application that displays web pages, requires an extensive help system, needs to do auto-updating over the internet and that kind of large-scale desktop application functionality, then RCP will be a great fit.

share|improve this answer
add comment

Your Answer


