Some Differences between IDEs and RCP Applications

One feature of the Eclipse IDE, that most developers seems to like, is the use of perspectives to organize the functionality of the IDE. Perspectives enable you to layout the exact views that is relevant for a specific function or use case. A lot of functionality of the Eclipse platform is used to manage perspectives:
  • You can open any perspective in any workbench window.
  • You can open any view in any perspective.
  • All editors can be shown in all perspectives.
  • ...just to name a few features...
Where this flexibility is good in an IDE, this is not so in many RCP applications. Here you want a lot more control of the perspectives and the parts that are shown in these perspectives.

The reason for the difference is relatively simple: whereas most developers want to be able to customize their workplace to their specific needs, many enterprises don't want the same freedom for their other office personnel.

Some examples:
  • Many RCP applications have multiple workbench windows each with a specific function. Each window might have a number of perspectives, but you don't want to be able to open all perspectives in all windows, only those that are relevant for the specific function of the window. This is not possible with the current perspective chooser - actually it is not even possible to avoid the "open perspective" button or to limit the set of perspectives that are offered in the menu.
  • The different perspectives in an RCP application often are much more specialized than in an IDE. E.g. you might have perspectives for contacts, another for mails and yet another for tasks. But there are no way to limit which editors that can be shown in different perspectives. This means the current e-mail messages are shown side-by-side with the open appointments (assuming they both are implemented as editors, which is the "natural" choice). Once an editor has been opened in one perspective, it will be present in all perspectives with an editor area. It might not be too bad for e-mails and appointments, but think of editors with CRM information for different customers and other business specific data...
  • Again because perspectives in RCP applications are more specific than in an IDE, you also want to limit which views that can be used in different perspectives. But if you want to allow the users to layout the start page (the first perspective), then you cannot limit which views that can be used...
Of cause, all of this can be solved with some custom versions of the relevant RCP actions, but should that really be necessary for all RCP development? Why not make this functionality an integral part of the RCP platform so it is done right and at the same time lower the entry for RCP application development?

Just my input for the upcoming "RCP Experience Workshop" symposium at the Eclipse Summit Europe 2007...


eclipse.dk has been launched

It has taken us some time, but now it is here: eclipse.dk.

Eclipse.dk was created in Marts 2007 as a meeting place for everyone interested in the Eclipse platform.

The purpose of Eclipse.dk is as follows:
  1. To promote the knowledge of Eclipse in Denmark.
  2. To create networks amongst danish Eclipse-users and developers.
  3. To build knowledge on Eclipse in Denmark, especially
    1. In danish institutes of higher education.
    2. Between danish companies developing applications based on Eclipse.
  4. Create and maintain a web site on Eclipse for danish users – eclipse.dk.
  5. Strengthen the relations between danish and international Eclipse-users and organizations.

The eclipse.dk society has members representing not only vendors of Eclipse-based products and services, but also users of the platform and representatives from institutions of higher education.

On 31. August, Eclipse.dk will have its first major arrangement with a focus on Eclipse 3.3.

To join the eclipse.dk society, use this page.

Please note that the web site is in Danish (almost only).


And the great release wheel starts another turn

Another turn of the great release wheel has just ended successfully with the release of Eclipse 3.3 (Also known as Europa)... and the next turn starts immediately (to be named Ganymede)

The first mile stone, Eclipse 3.4M1, has just been released and it already has several new noteworthy items - see Eclipse 3.4 M1 - New and Noteworthy. My personal favorite is the "Extract Class refactoring", which will extract a number of member variables from an existing class into a new class. It forms a very good basis when an internal 1-to-1 relationship should be changed into a 1-to-n relationship.

If you want to know what is planned for Eclipse 3.4, you can look at the plan for Ganymede (alternatively here) and some of the sub-plans: Team, Text, JDT Core, JDT Text and JDT UI, and others... if you can find them yet. Note that these plans are not expected to become final before late August.

If you want to download Eclipse 3.4M1, use this link - with the new download structure of Eclipse 3.3 it can be a little difficult to find the download pages for specific releases.