Recently I wrote about the momentum happening in the Eclipse Theia project. In this post, I want to highlight some good reasons to adopt Theia as your IDE solution. The core use case for Theia is as a base upon which to build a custom IDE or tool. However, if you are a developer looking for a great tool to use, you will find some motivation here as well. The inspiration for this post comes from Theia project lead Marc Dumais’ ‘Why Use Theia?’ talk that he gave at the recent Cloud DevTools Community Call. So, you could say this is Marc’s post!
1. Modern Technology Stack
Theia is Web-first. It’s built on modern Web technologies, and if we compare it with traditional IDEs such as the Eclipse Desktop IDE or IntelliJ it is a big departure in terms of technologies used.
These best of breed web-based technologies include Node.js, HTML5 and CSS, TypeScript, and npm. Theia supports all modern browsers, including Electron. So from a UI perspective, you can finally say goodbye to SWT or Swing and benefit from the modern rendering capabilities of HTML5. This will dramatically improve the look and feel of any tool built on Theia compared to previous platforms. Even better, you can use modern UI frameworks, such as React, Vue.js or Angular within Theia!
The use of npm connects Theia to a huge ecosystem of available frameworks for almost any purpose. However, it is worth mentioning that it is also very easy to integrate other technologies, e.g. Java, Python or C++ on the backend due to the very flexible architecture.
It’s important to note that these technologies are not only state-of-the-art for modern tools, they also heavily overlap with how business applications are being built today, allowing Theia to benefit from the ongoing evolution of a large ecosystem. This also makes recruiting easier. As an example, compare how many developers know how to develop in React vs SWT these days.
In a nutshell, the technology stack of Theia is powerful, modern and, last but not least, very common.
2. Cloud and Desktop
Eclipse Theia is designed to be used on the web as well as on the desktop. While other tools and platforms are typically created for either desktop or web use, supporting both use cases is in the core DNA of Eclipse Theia. And, we have adopters in both camps, as well as those that take full advantage of the power of Theia to provide both options at the same time and based on the same code. Having both options enables adopters to implement a long-term evolution strategy. Many companies start with a desktop tool and move to a full cloud-based solution later. Having this flexibility with minimal overhead is a unique and powerful benefit of Theia!
3. Extensible Framework
Eclipse Theia is much more configurable and extensible than other tools like VS Code. While a VS Code extension can add behavior to the IDE at runtime, there are limitations. For example, an extension can register support for searching for symbol references in a new language. The VS Code API covers many of the “standard” use cases when adding support for new programming languages. However, you cannot change the behavior of the IDE in many respects or leave out parts of the IDE that are not needed.
Eclipse Theia, on the other hand, is designed in a way that almost any part of the IDE can be omitted, replaced or customized without changing the Theia source code. You can create your own Theia build and add your own modules to override or extend most parts of the IDE through dependency injection.
Eclipse Theia supports the same extension API as VS Code. This means extensions created for VS Code are also usable in Theia. Most popular extensions can be obtained from the public Open VSX Registry.
It’s also easy to make your Theia-based application your own. Name/brand it, make it look different, customize views and user interface elements. You can adapt and customize almost anything, and therefore, build tools that fulfil your domain-specific and custom requirements.
To learn more, please see this article about VS Code extensions vs. Theia extensions and this comparison between Eclipse theia and VS Code.
Source: VS Code extensions vs. Theia extensions
4. Multi-Language Support Through LSP and DAP
Traditionally, language support was implemented independently in editors, meaning there was little or no consistency in features between them.To solve this, Microsoft specified Language Server Protocol, a way to standardize the communication between language tooling and code editor. This architecture allows the separation of development of the actual code editor (e.g. Monaco) and the language support (language server). This invention has boosted the development of support for all types of languages.
Similarly for debugging, another crucial function of an IDE, Debug Application Protocol (DAP) was built to define a way for IDEs to work with debuggers.
These technologies originated in VS Code, and are starting to appear in more places. Eclipse Theia, since its inception, provides full support for LSP and DAP. You can therefore benefit from the ever growing ecosystem of available language servers. Even more, the ecosystem around Theia, for example the Graphical Language Server Protocol (GLSP), which works similarly to LSP, but for diagram editors.
If you want to provide support for your own custom language, you can simply develop a language server for it. This makes your language available in Theia and also in any other tool that supports LSP, DAP or GLSP.
5. Truly Open Source and Vendor Neutral
Many tool technologies are open source. However, there are some details and attributes of an open source project that make a huge difference for adopters of a technology. This is especially true for tools, as the maintenance cycle is typically rather long, sometimes decades. Adopters of a platform or framework therefore, should focus on the strategic consequences. Let us look at the criteria more in detail.
Fully Open Source
Eclipse Theia and all its components are fully open sourced. There are no proprietary parts (like there are in VS Code for example, see this comparison).
Eclipse Theia is licensed under the Eclipse Public License (EPL). The EPL allows for commercial use, meaning you can build commercial products based on Theia without license issues. The EPL has a great track record of being commercially adopted, so many details, such as “derivative work” are well defined.
Intellectual Property Management
Defining a license for a project is a first step, but if developers use copied code or dependencies that are incompatible with the EPL, an adopter of the project might become guilty of a copyright violation. Theia is an Eclipse project and therefore its code and dependencies are vetted by the Eclipse foundation. There are defined agreements for contributors and regular reviews (including dependencies) to ensure IP cleanness of the code base. This significantly lowers the risk for adopters to get into license issues.
Many open source projects are almost exclusively driven and controlled by a single vendor. Eclipse Theia follows the Eclipse Foundation development process. It governs the collaboration and decision making in the project and ensures a level playing field for all members of the community. For adopters, the two most obvious benefits are: (1) No single party can drive the decisions, no single party can change the rules, meaning that it is a safe long-term option. (2) The rules ensure you can gain influence and be part of the decision making by participating in the community. This way you can make sure that the project evolves in a direction that suits your requirements.
Not only does the governance model of Eclipse Theia ensure vendor neutrality, the project is also very diverse in terms of contributors. If you look at the contributing companies below (a select list only), you can clearly see that Theia enjoys the broad support that is so important for innovation, maintenance and the long-term availability of a project.
In a nutshell, Eclipse Theia benefits from a diverse base of contributors and follows a proven license, IP and governance model that has enabled and preserved strategic investments for more than two decades.
Bonus: A Vibrant Ecosystem
Last but not least, Theia is built around a vibrant ecosystem. There are several comercial adopters that have built their solutions with Theia including Arm Mbed Studio, Arduino Pro IDE, Red Hat CodeReady Workspaces, and Google Cloud Shell.
Many adopters, service providers and contributors are organized and participate in the Eclipse Cloud DevTools Working Group. Current members include Arm, Broadcom, EclipseSource, Ericsson, IBM, Intel, RedHat, SAP, STMicroelectronics, and TypeFox. The working group structure allows these companies to coordinate their efforts, use cases and strategies. It brings together parties with a common goal, e.g. there is a special interest group for building tools for embedded programming. This set-up allows for great initiatives that serve a common goal and are developed in collaboration. As an example, the ecosystem provides Open VSX, a free and open alternative to the VS Code marketplace. As another example, Eclipse Theia blueprint provides a template for building Theia applications.
In addition to Theia as a core platform, there is a robust ecosystem of supporting projects and technologies. Eclipse has always been a great place for frameworks around building tools to solve all kinds of requirements. For example, there is a framework for building web-based editors called Eclipse GLSP. As another example, EMF.cloud transfers a lot of concepts from the EMF ecosystem to the cloud, e.g. model management, model comparison or model validation. Finally, quite a few existing technologies have targeted Theia to make the transition to the web, including Xtext, TraceCompass and many more. So when building on Theia, you do not just get a framework for building tools and IDEs, you can also benefit from the larger ecosystem being built around it!
As you can see, there are many reasons to adopt Eclipse Theia. We listed several important ones in this blog, but there are many more to discover. As you research options, you might find other solutions that are on par with Theia in specific categories. However, the combination of advantages Theia offers is unique. That is not by accident: Theia was explicitly created as an open, flexible and extensible platform to “develop and deliver multi-language Cloud & Desktop IDEs and tools with modern, state-of-the-art web technologies.”
To see what is coming next, check out the roadmap which is updated quarterly. The roadmap is a moving snapshot that shows priorities of contributing organizations. Common goals are discussed weekly at the Theia Dev Meeting and additional capabilities and features identified there will make it onto the roadmap. Take a look at the project to evaluate how to get involved. The best places to look first are the GitHub project and the community forum.