Creation Review

Type
Creation
State
Successful
End Date of the Review Period

Reviews run for a minimum of one week. The outcome of the review is decided on this date. This is the last day to make comments or ask questions about this review.

Project
Proposal

Eclipse Theia

Thursday, April 12, 2018 - 11:43 by Marc Dumais
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.
Project
Parent Project
Proposal State
Created
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.

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

Project Scheduling

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

Project Leads
Committers
Akos Kitta (This committer does not have an Eclipse Account)
Anton Kosyakov (This committer does not have an Eclipse Account)
Liang Huang (This committer does not have an Eclipse Account)
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)

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