Petya Petrova - Fotolia
Eclipse Foundation hopes to give the popular Microsoft-developed Visual Studio Code source code editor some competition with the 1.0 release of its Theia development platform.
Eclipse Theia is a framework for building cloud and desktop integrated development environments (IDEs). The platform enables developers to build a desktop application and transition it to run in the cloud without a rewrite.
Theia has the potential to repeat the original success of the Eclipse IDE platform almost 20 years ago, said Mike Milinkovich, executive director of the Ottawa-based Eclipse Foundation. However, "The Eclipse desktop IDE is going to be around and supported and very important for many, many years to come," he said.
But the new generation of developers is looking for tools that use web technologies, as opposed to the desktop integration that came with the original Eclipse platform. The 1.0 release is aimed at ISVs, not end users. A version for the latter is expected by the fourth quarter of this year.
Early contributors to and adopters of the technology include the companies ARM, Arduino, EclipseSource, Ericsson, Gitpod, Google Cloud, IBM, Red Hat, SAP and TypeFox. With Theia, companies can build custom and white-labeled developer products, Milinkovich said.
Many of these companies began adopting Theia before the 1.0 release. For instance, ARM's Mbed Studio IDE and the next generation of Arduino tools is based on Theia. So too are Red Hat's CodeReady Workspaces and the developer experience in Google Cloud Platform.
Ericsson and TypeFox launched the Theia project in 2016 and brought it to Eclipse in 2018, where it is part of the Eclipse Cloud Development Tools Working Group.
Eclipse Theia works as a native desktop application as well as in the context of a browser and a remote server, said Sven Efftinge, project lead for Theia and CEO of TypeFox. To enable this, Theia runs in two separate processes -- front-end and back-end processes that communicate through JSON-RPC messages over WebSockets or REST APIs over HTTP.
Theia's approach appears to meet an emerging need.
"It does feel like we're getting toward an inflection point where developers may start writing more code in the cloud than on their desktop -- close to the infrastructure they want to run on," said Jeffrey Hammond, an analyst at Forrester Research. "It's also hard to really do disconnected development well on a desktop when you are tapping multiple cloud native services. It's this type of tight-cycle development where I could see Theia being an asset to developers."
Support for VS Code extensions
Theia uses many of the same open source software components that VS Code uses, including the terminal component and the Monaco code editor that powers VS Code, Efftinge said. Theia also natively supports VS Code extensions, including extensions for different programming languages, visual debugging and database connections.
"There are more than 16,000 [VS Code] extensions and you can put all of them into Theia, and they just work," Efftinge said.
There is a marketplace for developers to get VS Code extensions, but Microsoft does not allow access to it from outside Visual Studio. Theia 1.0 launched with a marketplace for code extensions that allows for even non-VS Code applications to use these extensions.
"The extension marketplace that Microsoft runs for VS Code extensions is available only for VS Code users, not for users of derivatives of the VS Code codebase," said Todd Williams, vice president of technology at Genuitec.
A case in point: Genuitec's CodeMix product is based on VS Code and its extension model. However, CodeMix users are explicitly forbidden from using Microsoft's VS Code marketplace to install extensions into CodeMix, even if those extensions were written by a non-Microsoft third party and provided under a compatible open source license. But Theia gets Genuitec around that restriction.
Todd WilliamsVice president of technology, Genuitec
"Theia is Eclipse's attempt to provide a compatible fork to VS Code, complete with a universally available app store for VSX [Visual Studio Extensibility] extensions, that are controlled by an OSS [open source software] community, not by Microsoft," Williams said. "Honestly, it's a great idea and a wonderful counterpunch to the attention that VS Code is getting at Eclipse's expense."
Gitpod DevOps IDE for GitHub
Meanwhile, Gitpod is a Theia-based online IDE, developed by TypeFox, for GitHub and GitLab that launches development environments for any project with a single click, Efftinge said. Gitpod provides a continuous development environment, he added.
"We want to complete the DevOps tool chain," Efftinge said. "Lots of people do DevOps with continuous delivery, where everything is automated. We do the same thing just for dev environments. You put the description of your development environment into your Git repository and anyone on your team can just click a button and get a fully working pre-built dev environment in a couple of seconds."