Do you want to migrate your existing Eclipse RCP (Rich Client Platform) desktop application to a modern web-based technology stack and run it in the browser? Is Eclipse Theia maybe the next generation Eclipse Rich Client Platform and therefore a good technology to replace Eclipse RCP for your project? Let’s have a detailed look at this question!
In its early years, Eclipse was an extensible IDE as well as a platform for building custom tools and IDEs. With version 3.0 released in 2005, there was a major refactoring of the Eclipse platform that introduced the so-called Eclipse Rich Client Platform (RCP) for building general purpose applications. It is like the Eclipse Tools Platform, but without the parts specific to IDEs and tools. Since then, RCP has been used in a huge variety of domains including ERPs, Business Analysis, Insurance Management, Document/Content Management and many more.
Nowadays, most applications are however developed with web-technologies and run in the browser. Even though RCP applications typically have a long lifecycle, more and more projects are seeking to to migrate their existing RCP applications to the web in order to benefit from the modern user interface stack and more flexible deployment options.
The Eclipse Remote Application Platform (RAP) allows single-sourced RCP applications to run on the desktop and in the browser. For many projects, RAP is an efficient way to provide browser versions of their desktop applications. However, when considering deprecating the desktop version of a tool, a pure web-based technology stack using single page applications on the client is preferable in order to simplify the architecture and gain more benefits of the modern tech stack.
In a previous article, we discussed whether Eclipse Theia is the new Eclipse IDE/Tools Platform and concluded based on several typical IDE and tool requirements that Eclipse Theia indeed can be considered the next generation tool platform at Eclipse. However, in that analysis we left out the use case of non-IDE / non-tool RCP applications. So let’s focus in this article on whether Eclipse Theia is the next generation Eclipse RCP.
Is Eclipse Theia the next generation of Eclipse RCP?
For Eclipse RCP use cases, it is not that obvious whether Eclipse Theia is the next generation platform. Many tool-oriented features provided by Eclipse Theia are not always relevant for non-IDE use cases for which Eclipse RCP has been adopted. For instance, Theia’s programming language support via LSP, SCM integration, etc. are often not relevant for Eclipse RCP use cases.
Also, for many requirements of Eclipse RCP use cases, there are also other frameworks and means in the web technology ecosystem, which can replace the benefits Eclipse RCP provided. As an example, SWT, the UI kit of Eclipse RCP, provides a native look and feel. Originally, this was an advantage compared to Swing, as Eclipse RCP applications felt like native applications on the respective operating system. Also, RCP provided a workbench in which you could open multiple views and arrange them in a tab layout. However , when migrating to the browser, you get tabs for free and nobody expects a native look and feel for applications in a browser. Moreover, the support for modularity of Eclipse RCP can, at least on the server, be replaced with other frameworks such as Spring Boot or Node.js.
In a nutshell, not all RCP applications really require a platform such as Eclipse Theia when migrating to the browser, simply because there are other frameworks that provide these features already. Some of these other frameworks are even adopted by Theia itself. So the interesting question is:
Which Eclipse RCP application can benefit from Eclipse Theia?
There are RCP applications that can benefit a lot from Theia. This is the case for a specific type of application, let’s call them “workbench applications”. There is no clear definition for this term, so let’s provide some guidance. A good way to find out if your application fits into this scheme is to answer the following questions:
- Workbench Layout: Does your application allow users to open several view/editors and arrange them in a workbench view? Does this workbench provide stack layout and sashes?
- Dynamic Extensibility: Can users extend the application by installing new addons/plugins/extensions, even at runtime?
- Menus/Toolbars: Does your application provide a main menu, view menus or a toolbar?
- File System access: Does your application provide access to an underlying file system and do you show the file system in an explorer view?
- Jobs/Tasks: Can users of your application start processes/jobs which are executed and potentially run for some period of time?
- Editors (Textual, Diagram or data-centric): Does your application provide editors that allow users to view and modify some sort of artifacts. Artifacts can be files or models. Editors could be text editors, diagram editors or data-centric form-based editors
If your answer is “yes” to some of the above questions, it might be a good idea to have a close look at Eclipse Theia as a migration target for your RCP application. Eclipse Theia provides great support for all the use cases described above and even more.
Compared to other web IDEs, Eclipse Theia is really built as a flexible platform. For details, please have a look at this article about the flexibility of Eclipse Theia..
This means that you can deviate from the default look and feel, and from the default feature set. As a result, you can easily build Theia-based applications that aren’t IDEs or tools. Summing up: There are RCP applications for which Eclipse Theia can very well be the next generation of Eclipse RCP.
It is worth noting that the border between general purpose applications and tools is blurry, i.e. there is no clear separation between these two application types. Many applications, especially those that are aimed at domain experts with complex user flows, contain some tool aspects (see also the checklist on workbench applications above). At the end of the day, every project has to be considered individually with respect to its users and requirements and how those match the features provided by a platform such as Theia.
So in summary: Is Eclipse Theia the next generation Eclipse RCP? Yes, Theia covers very similar requirements compared to Eclipse RCP. As a result, there are many existing RCP applications for which Theia is a great fit. However, as discussed above, we have raised the question: Do all RCP applications really require a replacement for RCP when moving to the web? No, they don’t. By considering this for your project, you will identify whether Theia is the correct choice for you!
If you are interested in consulting about the evolution of your Eclipse RCP application, EclipseSource combines expertise in Eclipse RCP desktop and web-based tools such as Eclipse Theia and VS Code. We can support your application project in the evaluation phase, in the architecture and also in the implementation. Get in contact with us to discuss the future of your Eclipse RCP project!