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.
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.
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.
We do not expect any legal issues.
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.
-
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
The initial contribution can be done as soon as the project proposal is accepted. First build will be ready shortly after.
-
Ericsson
-
RedHat
-
TypeFox
-
Gunnar Wagenknecht (Salesforce)
-
Obeo (Cedric Brun)
-
EclipseSource (Jonas Helming)
-
Kichwa Coders (Tracy Miranda, Jonah Graham)
-
IBM (John Duimovich)
-
Martin Lippert (Pivotal)
The initial contribution has been developed by TypeFox in collaboration with Ericsson and can be found here : https://github.com/theia-ide/theia
- Log in to post comments