In this article, we compare Eclipse Che with Eclipse Theia and explain their relationship – their differences and their overlap. In fact – spoiler alert – both technologies do combine well and together provide a very powerful stack for cloud-based tooling. So let us start right ahead with the most interesting question:
What is the difference between Eclipse Che and Eclipse Theia
To answer that question, we first have to consider the two parts of Eclipse Che: the workspace server and the web-based IDE.
The Eclipse Che workspace server creates, manages and orchestrates developer environments that are running on a cloud container platform (Kubernetes, Docker, OpenShift, etc.). Che workspaces run in containers which provide all the dependencies that are needed to code, build, test, run and debug a project.
The Eclipse Che IDE provides a web-based UI for developing code, browsing files, using Git etc.. In version 6 (the current stable version) it is implemented based on GWT, it is also referred to as the Che GWT IDE. This component has similarities to Eclipse Theia, so the real question we need to ask is:
What is the difference between the Eclipse GWT Che IDE and Eclipse Theia?
To keep the article concise, let us focus on the major differences:
- Extensibility: Platform vs. Product
While the Che GWT IDE is ready to be used, Eclipse Theia is actually a platform to build IDEs and tools upon. Therefore, you need to configure your custom Theia product to use it. This configuration is pretty simple with Theia, though. As Theia is developed as a platform, it is more extensible and adaptable compared to the Eclipse Che GWT IDE.
- Technology: TypeScript vs. GWT
- Flexibility: Local vs. Remote
Eclipse Theia is more flexible in terms of deployment. It consists of two parts, one being the IDE (Client), the second one being the backend. Theia can be bundled into a desktop application using Electron. In this scenario, you can use a tool built on Theia without any additional server or internet connectivity. The Eclipse Che GWT IDE was designed to be used in combination with a workspace server, no desktop only version is foreseen (of course you could deploy the whole Che project on-premises or even locally)
Besides those major differences, both web IDEs have much in common, e.g. the usage of the language server protocol (LSP). Anyways, Eclipse Theia, for the web IDE part, looks like the clear winner here. The Eclipse Che GWT IDE is currently still a little more feature rich and “ready to be used out of the box” if you just want to start coding. However, Eclipse Theia seems like a more future-proof platform. Moreover, Red Hat, as the main driver behind Che has also engaged significant development efforts to improve and enrich Theia.
In fact, you can treat Eclipse Theia as the mid-term successor of the Eclipse Che GWT IDE. Che 7 (which is approaching beta) is the first version to officially support Eclipse Theia as a client IDE. That means you can create workspaces on the Che workspace server, which provide access via a ready-to-be-used version of the Eclipse Theia IDE.
This flexibility, i.e. supporting an new web-based IDE, is achieved by the “Workspace.Next” concept, more concretely by the so-called “sidecar” support in Che. This splits workspaces into the core runtime and tools, while the second can be added to any runtime as sidecars. That allows to switch between different web-based IDEs. The default web-based IDE to be provided in Che 7 will be based on Eclipse Theia, but alternate web based editors will also be available, such as as Eclipse Dirigible, Jupyter or any custom Theia:
Sidecar architecture in Che 7
So if Che supports several IDEs, including Theia, and if the GWT IDE might be deprecated mid-term, that leads us to the final question of this article:
What is the benefit of Eclipse Che compared to pure Eclipse Theia?
Eclipse Theia or the Che GWT IDE are only one of the pieces you need to create and operate a cloud-based tool. While Theia also comes with its own server part, you need some place to deploy it. If you want to support one user with one workspace, you can just deploy your Theia backend somewhere and you are fine.
In any multi-user / -tenancy scenario, you will need to support multiple users and allow them to create multiple workspaces. This is exactly were the Eclipse Che workspace server comes into play. It provides those missing features such as:
- User management (including integration with existing LDAP)
- Workspace management, i.e. users can create multiple workspaces and switch between them
- Workspace sharing, i.e. running workplaces can be shared or cloned among team members
- Workspace configuration management, i.e. there are adaptable templates (called stacks) to create new workspaces from, e.g. a JavaEE workspaces with all tools pre-installed
- Resource management, i.e. assignment of resources like RAM to workspaces or definition of limits per team
… and many more. The Che workspace server is based on Docker and Kubernetes and therefore even scales well. Finally, it can be deployed on-premises or remotely, so it is even ready to be used in larger enterprises.
To conclude on the original comparison, Eclipse Che vs. Eclipse Theia: It is not a either or, it is a clear AND. Theia is a technically strong solution for building a web-based tool or IDE. Eclipse Che provides a workspace server, a very powerful and comprehensive way of managing remote workspaces. Together, both provide the full stack you will need to create, deploy and operate a cloud-based toolchain. Eclipse Che version 7 will provide built-in support for the Theia IDE. Even more, its new Workspace.Next concept allows full freedom to even add other cloud IDEs and connect them to your workspaces. Therefore, this new concept has a lot of strategic value. It opens up the ecosystem of the Che workspace server for new tools, which might emerge in the future. Looking at the current speed of innovation in the area of web- and cloud-based tools, we are sure there will be new tools and platforms, which will benefit from this flexibility!