×

Status message

This proposal has been approved and the Eclipse Theia project has been created.

Eclipse Theia

Basics
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Parent Project: 
Background: 

Traditionally, software development has taken place on individual machines using desktop applications like the Eclipse IDE. With the rise of cloud and container technologies such as Kubernetes, the idea of coding in container workspaces, running in the cloud, has become more popular. Software development in the cloud

  • relieves the individual engineer from maintaining and setting up projects locally,

  • allows them to scale beyond the limits of their individual machines,

  • simplifies sharing and collaboration,

  • improves context switches (different projects, branches, etc.) through automation, and

  • centralizes control and confidentiality of source code.

But for the time being there are still many good reasons to prefer a locally running desktop editor, some of which are:

  • bad network connections,

  • deeper integration with local operating system features, and

  • the use of multiple different tools for different tasks (e.g. Git clients, editors, shells)

Today, every editor or IDE project either focusses on running in browsers (e.g. Eclipse Che’s IDE) or as a local desktop app (e.g. the classic Eclipse IDE). Technologies like Electron, however, allow to run the same code in the browser as well as in an integrated desktop app. Therefore, it is no longer a choice of either desktop or cloud IDE but both scenarios can be supported with a single tool.

Furthermore, since 2016 we have witnessed the rise of protocols such as the Language Server Protocol (LSP) and the Debug Adapter Protocol (DAP). They cleanly separate language specific logic that often needs to deal with internals of compilers and runtimes from the actual tool. Today we count over 50 language servers for different languages. Implementing support for such protocols within an IDE makes these assets immediately available.

Scope: 

Eclipse Theia produces an extensible platform for developing browser and desktop IDEs. In particular, the following is supported:

  • Use Theia as a basis for IDE-like products.

  • Provide the end-user with a full-fledged, multi-language IDE (not just a smart editor).

  • Support equally the paradigm of Cloud IDE and Desktop IDE.

  • Provide support for multiple languages via the Language and Debug Adapter Protocols.

  • Provide a modern GUI with JavaScript UI libraries.

Description: 

Eclipse Theia is an extensible platform to develop full-fledged, multi-language, cloud & desktop IDE-like products with state-of-the-art web technologies. It is implemented in TypeScript, CSS and HTML.

From a birds-eye-view, Theia consists of a frontend, running in a browser or in the local desktop application and a backend running on any host or locally within the desktop application. The frontend and backend communicate through JSON RPC over websockets.

A Theia application consists of a number of extensions, that can contribute to the frontend and the backend part. Everything in Theia is built using this extension system.

Why Here?: 

The Eclipse Foundation has always been the home for developer tools developed under an open-source governance. We think the community at Eclipse will help make Theia a diverse and successful open-source project.

Project Scheduling: 

The initial contribution can be done as soon as the project proposal is accepted. First build will be ready shortly after.

Future Work: 
  • Add support for Debug Adapter Protocol.

  • Add more and deeper language support.

  • Enhance the git integration.

  • Test UI and testing framework

  • Authentication

  • Advanced Commands/tasks

  • Sandboxed plugins

  • Support Multi-root workspaces

  • Add Editor navigation history service

  • Add JSON Schema support

People
Project Leads: 
Interested Parties: 
  • Ericsson

  • RedHat

  • TypeFox

  • Gunnar Wagenknecht (Salesforce)

  • Obeo (Cedric Brun)

  • EclipseSource (Jonas Helming)

  • Kichwa Coders (Tracy Miranda, Jonah Graham)

  • IBM (John Duimovich)

  • Martin Lippert (Pivotal)

Source Code
Initial Contribution: 

The initial contribution has been developed by TypeFox in collaboration with Ericsson and can be found here : https://github.com/theia-ide/theia

Source Repository Type: 
Zachary Sang's picture

Do we know how will this relate to/ use work from the Eclipse Che project?

Marc Dumais's picture

Good question. There is synergy between Eclipse Che and the proposed Eclipse Theia: Eclipse Che committers, from Red Hat, are actively working on a Theia integration. Also, Red Hat engineers have been contributing to Theia;  some of them are to be committers, in the proposed Eclipse Theia project.