Do you wonder what platform to use when migrating your existing Eclipse desktop tools to the web/cloud. Is Eclipse Theia the next generation of the Eclipse IDE and Eclipse Tool platform? In this article, we take a close look at Eclipse Theia and whether it can be considered a worthy successor of Eclipse desktop.
The Eclipse Tool Platform is the underlying framework for all Eclipse IDEs, e.g. the Eclipse Java tools and Eclipse CDT. Created as a platform for building tools, it is also the basis for a huge number of custom tools that adopters from various domains have implemented over two decades. However, time goes by and nobody can deny the big shift of tools to being based on web technologies and even running in the cloud. We are seeing this trend today of Eclipse platform (desktop) based tools looking to move to the web.
Eclipse Theia is a flexible and extensible cloud & desktop tool platform based on modern, state-of-the-art web technologies. The project was started in 2017. The intention then was not directly meant as a replacement for Eclipse desktop. However, the project has progressed very rapidly since then and with a general move to the web and cloud, many commercial tools are adopting Theia as their tool platform. Therefore, let’s have a look at Eclipse Theia vs. the Eclipse IDE/Tool platform in detail and try to find out whether we can consider Eclipse Theia to be the next generation of the Eclipse Tools Platform.
To get a better picture of the comparison between Eclipse desktop and Eclipse Theia, let’s look at the core strengths of the Eclipse Platform that have made it so successful over two decades. The table shows an overview of the comparison, if you are interested in the details, you can use the link in the table to jump to the respective section. For the folks in a hurry: you can directly jump to the conclusion.
|Flexibility and Adaptability
|UI Framework Support
|Data-centric tools and Modeling
|Running in the Web/Browser/Cloud
|Ecosystem and Maintenance
|Usable out of the box
Eclipse desktop provides a workbench, which consists of an advanced window layout, including views and editors, menus, a toolbar and perspectives. Furthermore, it can manage preferences, global selections and many more features, which are typical of a tool or IDE.
Eclipse Theia also supports almost all these features. The only main exception is perspectives, which are currently not supported. However, as Theia currently stores and restores the window layout already, it should be simple to add this if required.
There might be other smaller things still missing in Theia. However, based on our experience with migrating complex tools from Eclipse desktop to Theia, there is nothing significant you will miss with the Theia workbench. And there are things in Theia that we feel work better compared to Eclipse desktop: As an example, the Theia workbench is completely styleable and themeable.
We will call the comparison equal in this category; Eclipse desktop might have some more features, Theia has better styling options and a simpler API for the workbench.
The modularity of Eclipse has always been a huge success factor. The introduction of OSGi in 3.0 even improved the modularity story of Eclipse. Eclipse Theia continues this evolution of Eclipse. It even supports two module concepts: Theia extensions and VS Code extensions.
Both frameworks also allow for easy integration and reuse of third party features. Needless to go into more details, this category is a standoff, at a high level, though.
Flexibility and Adaptability
Eclipse desktop is flexible and adaptable due to its extensions API. Theia takes this a step further. The consistent adoption of dependency injection in all areas, including the core let’s you adapt and replace almost everything with ease. If you want to build something more custom, you will be very happy with Eclipse Theia. This category goes to Theia.
UI Framework Support
SWT, despite its age, remains a great piece of technology. Together with JFace and with technologies such as EMF Forms, you can still very efficiently develop desktop UIs. However, the vast majority of UIs today are web-based and, as a consequence , the technology evolution in terms of web UI frameworks has surpassed the desktop. The native look and feel that made SWT such a success in the early days is no longer as important.
Eclipse desktop is bound to SWT (potentially JavaFX. With Eclipse Theia you can pick from the huge ecosystem of browser UI frameworks. In addition, you have the amazing flexibility when it comes to theming and styling of web-based UIs. Theia is the clear winner here.
One of the great advantages of using a tool platform such as Eclipse desktop or Eclipse Theia is that you can very easily support programming languages by including respective modules. Eclipse desktop has world class support for popular programming languages such as Java, C/C++, and Python, provided by the respective Eclipse projects (e.g. JDT for Java). Eclipse Theia supports the language server protocol (LSP) enabling you to use any language server out there, even those outside of the Eclipse ecosystem.
LSP is a core innovation in the tool market. It enables language support to be built independently from any tool. As an example, you can use the same language servers in Theia, in VS Code or even in Eclipse desktop. Further, language servers can be developed in any language, very often in the language they support. As an example, the C/C++ community can implement language support in C without worrying about UI technologies. As a result, we expect LSP to become the de-facto standard for language support and are thrilled to see so many actively developed language servers for several different programming languages. The same concepts apply for debugging with the debug adapter protocol (DAP).
So this is a difficult one to decide on. For languages that have native support in Eclipse desktop, especially Java, C/C++ or Python, Eclipse desktop probably still wins. In terms of being future ready and the number of supported languages, LSP wins. The support for LSP and DAP is arguably better in Theia compared to Eclipse desktop, so let’s call this category even.
With GEF and the GMF runtime, Eclipse desktop was a popular platform for diagram editors. This was a clear gap in the early days of web-based tools. However, with Eclipse GLSP (based on Eclipse Sprotty), the ecosystem now provides a world-leading framework for diagram editors based on a modern web stack. GLSP (Graphical Language Server Platform) works similarly to LSP, but for diagrams. Thus, GLSP is not bound to Theia only, but can be used in different tool platforms and web applications. For Theia in particular, however, GLSP provides a dedicated integration that makes it easy to hook up GLSP editors with many native features of Theia, such as its Problems view, context menus, etc. As GLSP is based on SVG, its rendering capabilities are superior to GEF. We’ve even observed projects adopting Eclipse GLSP in a browser widget embedded in desktop applications for this reason. Therefore, this category goes to Theia.
Data-centric tools and Modeling
EMF, EMF Compare and EMF Forms are a great basis for data-centric tools. Furthermore, you can find a solution in the Eclipse ecosystem for almost any requirement a modeling tool might have. Like diagrams, this area was not a focus for early web-based tools. However, with EMF.cloud and JSON Forms, there is now a vibrant ecosystem for web-based data-centric tools, centered around Theia. EMF.cloud provides some new components, but it also allows you to reuse some existing technologies from the EMF ecosystem including EMF itself. See the coffee editor as a publicly available example for a modeling tool based on Eclipse Theia. Arguably, Eclipse desktop still provides a few more features in this area, so for now the category still goes to Eclipse. This will probably not hold for much longer, with features such as model comparison on the way. Have a look at EMF.cloud for the latest state in this area!
The Eclipse tool platform and all Eclipse IDEs are extensible with plugins. This allows you to simply install existing features in an Eclipse-based product. The Eclipse marketplace provides access to a huge variety of tool features. Eclipse Theia supports VS Code extensions and the Eclipse Foundation hosts an open marketplace for these called Open VSX. Both marketplaces host almost exactly the same number of extensions today. Clear tie in this category! However, if the trend of more extensions being published for the web stack continues, Theia will soon emerge as the winner in this category.
Running in the Web/Browser/Cloud
This is a simple one. The Eclipse Tool Platform was built for the desktop, not the browser. You can migrate RCP applications to the browser using the Remote Application Platform (RAP), but this comes with some limitations and doesn’t really suffice for typical tools or IDEs.
Eclipse Theia has been designed based on a web stack from. You can use it to build desktop based tools (using Electron) or run it in the browser. The browser mode also unlocks a cloud-based deployment, in which the backend runs on some remote infrastructure. No surprise, the winner here is Theia.
Ecosystem and Maintenance
We do not have to compare the open governance, vendor neutrality, licenses or transparent processes, as both projects are Eclipse open source projects! Let’s look at the diversity and stability of the ecosystem instead. Eclipse desktop has had an amazing track record over the last 20 years. During this period the activity has definitely decreased, but the project has also become more diverse.
Eclipse Theia today is more diverse than Eclipse desktop at the same age. This is very promising as the big shift to web-based platforms is just starting.
It is worth mentioning that the code base of Theia is significantly smaller compared to Eclipse desktop. The main reason is that Theia reuses many standard libraries and technologies (such as HTML, CSS or LSP) instead of providing them (for example Eclipse provides SWT). This generally puts less of a maintenance burden on the platform, which is very valuable mid-term.
Nevertheless, it is impossible to foresee the future. However, Eclipse Theia has the potential to significantly gain even more adopters and contributors over the next few years if the trend to web-based tools continues. Eclipse desktop will continue to be maintained as long as there are still enough adopters out there. We are comparing projects at very different states of their lifecycles here, so let us call it a tie.
Usable out of the box
The Eclipse Tools Platform itself is not a downloadable IDE product, you can use it to build tools. However, the Eclipse ecosystem has provided great tools and IDEs based on the platform since the beginning; foremost the Java Development Tools, but also many other tools, e.g. for C/C++, Python or modeling.
Theia is currently focussed on being a platform and it does a great job in doing so. You can use Theia by using a Theia-based tool provided by an adopter (e.g. Eclipse Che, Arm Mbed Studio or the new Arduino IDE). The Theia project had not provided a default vanilla product by itself. This partly changed last year when Theia Blueprint was released. It is a template tool based on Theia. It allows you to try Theia and is a great starting point for building tools based on the framework. Nevertheless, it is usable as an off-the-shelf IDE, and developers use it every day. However, it is not really intended as a fully polished product (yet). Thus, we wouldn’t call Theia blueprint the next generation Eclipse IDE yet. Therefore, this category goes to Eclipse desktop. However, if there is interest from the community, Theia Blueprint might eventually evolve more into a user facing product for the masses, let’s see!
So let’s conclude on this comparison between Eclipse Theia and the Eclipse Desktop Tools Platform. You might be surprised that many categories have no clear winner at the moment. However, this actually suggests that Theia in many aspects has already caught up with the Eclipse desktop platform, which has been developed for over two decades. Moreover, if you look at development activity and where innovation is happening, it becomes clear that the future is in web-based UIs and web-based technologies such as LSP or GLSP. For some core criteria Theia is already superior to Eclipse desktop, foremost the rendering capabilities and the ability to run in the browser/cloud. Furthermore, being on a modern, standard technology stack such as Eclipse Theia improves the sustainability and maintainability of your tool projects, including the ability to staff from a larger talent pool..
So back to the original questions:
Is Eclipse Theia the next generation of the Eclipse Tool Platform? The answer is yes!
You can definitely treat it this way. We observe many adopers currently transitioning from Eclipse desktop to Eclipse Theia with great success.
Is Theia the next generation Eclipse IDE?
Well, Theia is not an IDE, it is a platform to build IDEs and tools. Theia Blueprint, as the default Theia template tool does provide a great IDE. Is it better than a particular Eclipse IDE package? For web development probably yes, for languages like Java we would not claim so, at least not yet. But that is the beauty of open source, if you are interested in improving Theia Blueprint, we are looking forward to your contributions!
You might wonder how VS Code fits into this whole picture. Comparing Eclipse Theia to VS Code provides more than enough content for a dedicated article: Theia and VS Code. If you have been providing a plugin for the Eclipse IDE rather than a custom tool based on the Eclipse desktop platform, you should consider implementing a VS Code extension. VS Code extensions are supported in Theia and VS Code, which allows you to reach a larger audience with your extension. See this comparison between VS Code extensions and Theia extensions. Finally, if you have a RCP application rather than a tool, please refer to this article about whether Eclipse Theia is the next generation Eclipse RCP.
If you are interested in migrating an Eclipse-based tool to Eclipse Theia or VS Code, EclipseSource provides you with consulting and implementation services for tools and web-based tools in particular. Being experts in both worlds, desktop tools and web/cloud-based tools, we can support you starting with early proof of concepts, architecture, training, and the full migration story. Get in contact with us to discuss your migration strategy!