Theia is a modern and open platform for developing cloud and desktop IDEs and tools based on web technologies. You can try it by building your own IDE/tools based on Theia within minutes. Alternatively, you can download and try Theia Blueprint, a template tool based on Eclipse Theia. It has a vibrant and active community of contributors and adopters. Check out the Theia website for more information.
Here are 10 reasons why you should consider adopting Eclipse Theia.
1. Modern Technology Stack
Eclipse Theia is based on a modern and well proven technology stack. Using HTML5, CSS and Typescript for the frontend allows Theia-based applications to run in modern browsers and take advantage of their latest rendering capabilities. The Node backend, which also uses Typescript, completes a homogenous technology stack. It also provides access to the huge ecosystem of Node libraries.
Theia uses standard technologies from the domain of business applications wherever it makes sense. This makes the platform future proof and also eases recruiting for tool and IDE projects based on Theia. More about this in the next section!
Eclipse Theia provides compatibility with a number of interesting and relevant technologies. No surprise for a modern platform, it is compatible with the language server protocol (LSP). Via LSP, Theia provides support for a variety of programming languages, Similarly, for debugging Theia supports the debug adapter protocol (DAP). To allow the installation of additional features into Theia-based tools, the platform is compatible with VS Code extensions. This means you can benefit from the huge ecosystem of available VS Code extensions in Theia, too! Theia also uses the same code editor as VS Code, Monaco, which makes code editing capabilities and the look and feel compatible with VS Code.
Besides tool-related technologies, Theia is very open in general allowing you to use existing frameworks. As an example, you can implement custom UIs in React, in Angular or any library you wish.
3. Desktop and Cloud
Eclipse Theia allows you to build tools and IDEs that run both in the browser and, using Electron, as desktop applications. The two options share the same code base. With very little overhead, you can even switch between both options or offer both at the same time. This allows a lot of flexibility when planning the web/cloud migration strategy for your existing tools and IDEs. Many projects, for example, will first migrate to a Theia desktop application with its modern, web-based stack. Then in a second step, the new, modernized implementation is deployed to the cloud and used via a browser.
One core differentiator of Eclipse Theia as compared to other web IDEs is that Theia is actually not just another tool or IDE, rather it is a platform to build tools and IDEs. As a consequence - and here we see the Eclipse Platform influence - Theia is built for flexibility and customizability from the ground up, which is crucial if you want to build a custom tool or IDE. As an example, if you want to remove default UI contributions, you can easily do this in Theia. You can also add your own branding and look and feel on top of the platform. Finally, if you miss any features, you can easily add them on top of Theia’s flexible architecture. Compared to other solutions that are more off-the-shelf tools than platforms, Theia poses very few limitations on what adopters can do with it.
5. Unique Features
We´ve just mentioned that it is very easy to add new features on top of Theia. This capability is heavily used by adopters and often these features are generic enough to be contributed back to the Theia. Therefore, Theia provides you with a comprehensive set of existing features to be reused, if and only if you want to. A full list of available features would go beyond the scope of this overview, so let’s just mention four example features that aren’t necessarily common in web-based tools and IDEs:
Toolbar: Theia provides a fully flexible, user-configurable toolbar. It might be surprising, but this feature is requested a lot from other popular web IDEs. In Theia it is up to you, if you want to provide a toolbar, you simply add it to your tool or IDE when desired.
Flexible Workbench Layout: Some web-based tools impose significant restrictions on how the user can layout views and editors in the workbench (see for example here and here). In a Theia-based application, you can allow the user full freedom to arrange views, terminals and editors.
Detachable Views: Theia is working on improving the flexibility of the workbench layout by allowing you to detach views into separate windows. This feature is completely standard for desktop-based tools, but Theia is leading the way here for web-based platforms.
Memory Inspector: Theia provides a full fledged memory inspector that can visualize memory values of both hardware and software. This is especially useful during debugging sessions. The memory inspector is not limited to C/C++, but can also be extended for other languages, e.g. Rust. It is one of the most comprehensive solutions in this area we are aware of.
The user configurable toolbar in Eclipse Theia
6. Additional Technologies
While Theia’s core is pretty feature-rich, its focus is on the core aspects of a tool/IDE framework. However, there are plenty of additional technologies available that integrate well with Theia to add more specific functionality to your Theia-based application. As an example, Eclipse GLSP and Sprotty provide cutting edge support for diagrams and diagram editors. EMF.cloud allows you to build data-centric tools based on Theia, including form-based views, validation and data model versioning. CDT.cloud provides a whole ecosystem for building C/C++ related tools. All its components integrate well into Theia, e.g. Trace Compass Cloud, the web version of the popular tracing tool. The Eclipse Cloud Development Tools ecosystem continues to grow!
Theia with additional technologies such as Eclipse GLSP and EMF.cloud
7. Fully Open Source
Many tools, IDEs and tool technologies are available open source. However, there are often some exceptions and restrictions in other ecosystems. Eclipse Theia is completely open source and licensed under the Eclipse Public License, which is very well suited - designed actually - for commercial use. Moreover, Theia is hosted at the Eclipse Foundation which provides a well defined and rigorous intellectual property (IP) process for open source projects. Regular reviews ensure that the project IP is clean, meaning that contributions are valid and agreed upon under the respective license. This makes Theia a good base for building commercial products.
8. Vendor Neutral Governance
Theia is not “only open source”. The Eclipse Foundation defines rules and processes for a vendor neutral governance and a code of conduct. This attribute must not be underestimated when you strategically select a platform for your next generation tool offering. Vendor neutral means that no single vendor has control over the project. Instead, the project is governed collectively by the companies that contribute to it leading to excellent solutions for the requirements of Theia adopters. The Theia community is a welcoming and friendly one. The people working on the project set the tone and create a constructive and nice environment.
9. Active and Diverse Ecosystem
Eclipse Theia has a very active and diverse ecosystem of contributors and adopters. This is an important benefit when strategically adopting a platform. When you decide for Theia, you are definitely not “alone”. Several adopters even share their adopter stories in public (e.g. Arduino or Logi.cals) and are listed on the Theia website (see screenshot below). This ecosystem strengthens the project via contributions, feature requests and bug reports. You can also actively communicate with other developers, e.g. via the very active community forum or the weekly developer call. Last but not least, the open ecosystem often leads to great collaborations. As an example, Theia blueprint was contributed as a collaboration from four companies. Eclipse Theia is a good example of how open source collaboration in an industrial ecosystem can mutually benefit all participants!
10. Available Support
Last but not least, you should also consider the available external resources to support your adoption of a platform such as Eclipse Theia. The Eclipse governance model has always fostered an ecosystem of adopters, contributors and professional suppliers for support around its technologies. This has worked well for Theia, too. If you adopt a new technology such as Theia, you might require training, architecture support and developer support. You also might want to subcontract the development of parts of the development of your toolchain. For Eclipse Theia, there is an ecosystem of support providers for all these tasks.
In addition to these ten reasons to adopt Theia, it is a very active project with monthly releases and a great community around it. This positions Eclipse Theia very well to be the next generation of the Eclipse Platform for IDEs and Tools and even the next generation of Eclipse RCP.
Come see us at EclipseCon 2022!