When to use Eclipse RCP?

As we start talking more and more about Eclipse RCP, I find it important to be able to describe when someone should consider using Eclipse RCP, instead of alternative technologies. If anything it starts to help people better understand the capabilities of Eclipse RCP.

In the space of platforms for rich user applications there seems to be a number of potential solutions, including Eclipse RCP, AJAX, MS .Net and Flash. (I am sure I am missing other potential solutions, feel free to add a comment.) At the high level, I think there are a couple of decision points that lead you to a different technology alternative.

Point #1 – Organization Culture

Is your organization considered a Microsoft or Java shop? Are most of the programmers trained on .Net or in Java or something else? Do you have a strategic direction to develop all applications on Java or .Net. Lets face it, an organization that is 100% Microsoft probably won’t/shouldn’t consider Eclipse RCP. If it is 100% Java, then I would hope Eclipse RCP would have a lot to offer. Lots of shops are heterogeneous, so the decision might be less than obvious.

Point #2 – Type of End User

What is the user profile of the application end user? Is it a casual user that uses the application occassionally or a power user that ‘lives’ in the application. For instance, I am fine doing my on-line banking via a browser, since I do it only once or twice a month. However, a bank employee that manages high-end banking customers probably wants to have a desktop application. They need to be able to save local information, switch between different contexts and tasks. Also integration with other applications on the desktop is often important. Here I think something like MS .Net or Eclipse RCP would be a big win.

Point #3 – Type of Application

I think there are different types of applications that are better suited for AJAX, Flash or RCP. At a very simplistic level I think there are three types of applications: 1) content delivery, ie portals, dashboards, where presentation is very important. 2) collaboration/workflow applications,where context and tasks switching is important and 3) transactional applications. For the content delivery, AJAX and Flash seem to be better suited for presentation and ease of content delivery. However, when you get into sophisticated workflow or collaboration, the ability to work offline and have persistent data is pretty important. Here I think RCP might be better suited. For transactional applications, I think it will depend, maybe on the type of user?

Of course none of this is black and white; there is a lot of gray in all of this. However, I am interested if people think this begins to hit home on when thinking about RCP? Or is this just pure marketing fluff and I’ve missed the important stuff?

14 thoughts on “When to use Eclipse RCP?

  1. Good timing on this post, I will be visiting a client tommorrow who wants to webifiy all of their internal applications. I will be trying to sell the RCP vision which I belive is vastly superior.

    I guess one thing you miss out on is the maintenance issue, with local applications and local data there is increased maintenance on the local computer.
    I’ve always tried to argue with a web solution (even internal) you’re managing your installs of IE and spyware etc..

    Anyways, thanks for the post!

  2. To counter refux’s maintenance concern, if you use Eclipse Update Site concepts, maintaining the app can be as easy as web solution. The web server is just a deployment server and let the desktop OS download and update the plugins. If anything Eclipse guys can do (are you guys listening?) is to wrap the update site idea with a “dumb end user” concept. Updatesite works great for developer types but for end users it’s a little daunting. We’ve written a few things to make it dead simple…which is what the boys in Redmond have done with Click Once deploys.

    Excellent post BTW!

  3. …and if you’re using Java WebStart for the initial installation and eclipse update sites for the updates then you have an ideal combination for admin-free deployment.

  4. We have developed an RCP solution for our client’s budgeting needs who is a national concern in South Africa. It has been operational now for almost a year now and the update manager is key to its success. Our decision to go RCP was based on bandwidth constraints, which is still a continuing problem in our “developing” country. Hence the offline ability described in your blog was a major motivation. The other buy-in factor was cross platform ability. Our client is not locked into an MS platform and this freedom is ensuring that we have lots of future headway. On the negative side, clients running offline often persist data locally and this is where I agree with the point of increased client-side maintenance. The strangest things happen when you are not control of the data such as PC failures, PC replacements, formatting of hard drives, etc. To overcome this, we impose restrictions on the duration that data may exist offline. Aside from this, our experience has been a positive one and our users (who are predominantly non-technical, business minded) have taken well to concepts such as perspectives, views, wizards, cheat sheets, etc.

  5. Just got back from the meeting I mentioned in my previous post.
    We were able to talk the CIO out of going full-steam ahead with his webification plans (when does a consulting firm ever try to talk a client out of an expensive project!). Using the points Ian makes in his post I think I was able to make a fairly compelling reason to have a rich client on the desktop.

    The discussion of data on the client computer did come up again, I wish I’d read Andre’s post before the meeting, I love the idea of expiring data!

    Anyway, just wanted to give an update and to let Ian know his post was quite timely and useful 🙂

  6. Refux,

    Glad to hear your presentation went well. I agree the update manager is pretty cool and I think one of the hidden secrets of Eclipse.


    I’d love to hear more about your application. I am trying to write case studies about successful RCP deployments. Do you think you and your customer would be willing to participate?

  7. While still early and not ready for public (developer) consumption, myself and a few others are working on a Swing based RCP application framework. We have modeled our plugin engine similar to Eclipse, but are working on adding an event bus and IoC capabilities within the engine itself. The framework will initially include a simplified launcher and a number of plugins that provide the core api with which developers can build on top of. Included will be the main window with optional docking framework (flexdock) or MDI/SDI style (so you aren’t stuck with a docking based application), help, preferences, configuration management for saving/restoring properties, some generic but nice looking dialogs, wizards, and so forth. We are working right now on an auto-update feature that will be similar to the Eclipse one, although initially it’s a non-GUI plugin that can be used by other plugins; we’ll be providing a GUI plugin for a manual push/update dialog, as well as the ability for checking for updates on startup.

    Hopefully we’ll gain some traction as an alternative especially since the vast majority of java GUI developers are Swing based and there is an outpouring of cries for a Swing based framework like Eclipse, even though RCP can be used with Swing.

  8. I also see two major counterparts of Eclipse RCP:

    1) Eclipse use SWT, means harder/unrealist/very slow to deploy online via webstart/applet. On this point the Netbeans RCP might be better then.

    2) You can’t bundle any GPL file with any Eclipse RCP file because the Eclipse EPL license is GPL incompatible. For me this is what sucks the most and why I forgot about using Eclipse RCP in JGraphpad CE while it would have been a nice design solution. Regards.


  9. RCP versus Java Web Start.
    In a company where the culture is Java oriented (not .NET) and for transactional or collaboration/workflow applications, it seems Java Web Start is so suitable as RCP. What do you think about ? If it is, what are the advantages and disadvantages of each solution, comparing RCP and Java Web Start ?

  10. ok i understand why and when to use … but i don’t find real informations about how i could write a better rcp plugin…can anyone help me with a tutorial or something else..
    plase write me at ctechinfotech@yahoo.com

Comments are closed.