Jonas Helming, Maximilian Koegel and Philip Langer co-lead EclipseSource. They work as consultants and software engineers for building web-based and desktop-based tools. …
Eclipse Theia is the Next Generation Eclipse Platform for IDEs and Tools!
March 9, 2022 | 13 min ReadDo 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.
Eclipse Desktop | Eclipse Theia | |
Workbench | ✔✔ | ✔✔ |
Modularity | ✔✔ | ✔✔ |
Flexibility and Adaptability | ✔ | ✔✔ |
UI Framework Support | 0 | ✔✔ |
Language Support | ✔✔ | ✔✔ |
Diagrams | ✔ | ✔✔ |
Data-centric tools and Modeling | ✔✔ | ✔ |
Available extensions | ✔✔ | ✔✔ |
Running in the Web/Browser/Cloud | - | ✔✔ |
Ecosystem and Maintenance | ✔✔ | ✔✔ |
Usable out of the box | ✔✔ | ✔✔ |
AI Support | - | ✔✔ |
Collaboration (Live Share) | 0 | ✔✔ |
Workbench
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.
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 still have collected some more features over the years, Theia has better styling options and a simpler API for the workbench.
Modularity
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.
Language Support
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.
Diagrams
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!
Available extensions
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 ongoing.
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 ecosystem has provided great tools and IDEs based on the platform since the beginning, foremost the Java Development Tools, but also many others, e.g., for C/C++, Python, or modeling.
Eclipse Theia itself is not a downloadable IDE product—it is a platform you can use it to build tools (e.g. the new Arduino IDE is built on Theia). Additionally, the Theia project also provides an openly available product, Theia IDE, which users can download or try online. The Theia IDE is a state-of-the-art code development tool that stands out for its foundation on modern web technologies, enabling it to run seamlessly both on the desktop and in the browser. Also it includes some pretty unique features such as an open AI integration and open collaboration support.
Whether you prefer the classic Eclipse IDE or the modern Theia IDE is up to you, let’s call it a tie. However, Theia IDE has some features that the classic IDE misses, learn more in the next sections.
AI Support
As the demand for AI-powered tools and IDEs grows across industries, building such tools from scratch can be a complex task, requiring extensive effort in integrating large language models (LLMs), handling data exchanges, and ensuring smooth user interactions. Theia AI, part of the Eclipse theia platform, simplifies this by offering a robust framework for tool builders, handling foundational AI tasks like prompt management and LLM configuration. This allows developers to focus on creating domain-specific AI features that truly enhance productivity.
The AI support in the Theia IDE showcases these capabilities, offering features like AI-driven code completion while giving users full control over prompts, communication, and LLM selection.
As we are not aware of built-in AI support in the Eclipse desktop platform, Theia is the clear winner in this category.
Collaboration (Live Share)
In today’s development environments, collaboration and live-sharing features are becoming essential, enabling teams to work together seamlessly in real time. Whether it’s pair programming, live code reviews, or collaborative debugging, integrated collaboration tools are key for improving productivity and communication within teams.
Theia natively integrates the Open Collaboration tools providing a fully open and extensible framework designed to support real-time collaboration within custom tools and IDEs. It allows developers to integrate live collaboration features across various custom editors and workflows, offering full control over data exchange and infrastructure, without vendor lock-in. This makes Theia ideal for building tailored solutions that require flexible collaboration support. The collaboration support is also integrated into the Theia IDE, ready-to-be-used.
While the Eclipse desktop platform does offer some plugins for enabling collaboration, these tend to be more limited in terms of extensibility and customization. In contrast, Theia’s solution is not only more flexible but also fully open, making it a superior choice for teams looking to build custom, collaborative tools and IDEs. Therefore, Theia takes the lead in this category.
Conclusion
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 adopters currently transitioning from Eclipse desktop to Eclipse Theia with great success.
Is Theia the next generation Eclipse IDE? Theia is more than just a platform; with the Theia IDE, it is also a fully functional and state-of-the-art IDE.
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 articles: Theia compared to VS Code (OSS) and the Theia IDE compared to 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!