Earlier this week, the Eclipse Foundation announced the release of Eclipse Theia 1.0, an open-source framework for building web and native IDEs. Theia provides a JavaScript framework for building IDEs that can either be run on the web or packaged into an Electron application to run on the desktop. It has been designed to be compatible with VSCode extensions and uses the same Language Server Protocol for being able to remotely develop a variety of programming languages, including Java, Python, Rust, and many others.
Although it may seem superficially similar to VSCode, Theia is actually an IDE framework rather than an IDE itself. It provides components, like JavaFX enables GUI applications, rather than an IDE itself. However, many IDEs have been built on top of pre-releases of Theia already, including the popular Gitpod.io which provides a web-based IDE for your applications, and Eclipse Che which can be run in a Kubernetes cluster for self-hosted solutions.
Sven Efftinge, project lead of the Theia project, highlights some of the differences between Theia as a framework and Microsoft's VSCode:
Microsoft prohibits non-Visual Studio products from installing any binaries downloaded from their marketplace (see terms).
Considering that most extensions are open-source and not developed by Microsoft, that’s a pretty sad state of affairs.
This limitation not only affects Theia and all of its downstream adopters, but also releases based on the open-source code of VS Code, such as VS Codium.
Although VSCode is available freely, it has some non open-source components and reports telemetry to Microsoft; this has resulted in the VSCodium build which has removed the non open-source components. However, the language server protocol used for compiling and highligting code are freely implementable, and used by other IDEs, and the same approach is used for Theia and derivatives.
What isn't available is the Microsoft marketplace; to solve this, the Eclipse Theia project created Open VSX as an open-source implementation of the Microsoft marketplace, and hosts open-vsx.org as a public registry of open-source extensions. This is also enables on-premise solutions for hosting VS Code/Theia extensions.
Theia has been in development for around 18 months, and is the framework behind Gitpod.io that provides a web-based IDE for building GitHub, Gitlab and (soon) BitBucket hosted projects. Gitpod.io allows your git repository to be opened in a web browser, navigated, edited, committed and run. It provides a docker-based runtime for executing code, and a shell that allows code to be executed in place. Theia builds on the experience of other web-based IDEs like CodeEnvy, Cloud9 and Bespin.
Eclipse Che provides a managed web-based IDE experience that can run on premise and uses Kubernetes to scale its back end. Eclipse Che has been available for over four years, initially using a GWT based IDE but switching over to run on Eclipse Theia with their 7.0 release to allow greater flexibility and installation of plugins at runtime without needing to recompile the GWT code.
Theia is also used by other commercial and open-source IDEs, such as Arm's mBed Studio, Arduino's Pro IDE, Google's Cloud Shell editor, and many others. They use the same codebase but can run either as web appications, or local IDEs with an Electron runtime.
Mike Milinkovich, executive director of the Eclipse Foundation, highlights some of the benefits of having a standardised framework for web-based IDEs:
Theia is being developed by a diverse group of contributors, committers and supporting companies such TypeFox, Ericsson, Red Hat and ARM. With over fifty committers and contributors over the past three months, it is a fast-moving, welcoming, and open community where contributions are accepted from all.
Theia’s more than an alternative to VS Code. The main differentiator between Theia and VS Code is that Theia is specifically intended to be adopted by other companies and communities to build and deploy a modern web-based developer experience. VS Code is great, but it is only ever going to be a Microsoft product.
Theia is intended to be modified, extended, and distributed by folks who want to create developer tools that look as great as VS Code (including using the same Monaco Editor) and can make use of the VS Code extension ecosystem. Of course, it is licensed under the EPL 2.0, so it is easy for organizations or individuals to build and ship products using Theia.
If you're interested at finding out what Theia looks like or what it can do, you can launch a workspace in GitPod containing Theia to see.