Brief Summary
This article compares Eclipse Che and VS Code Codespaces, two prominent online IDEs, focusing on their architecture, extensibility, deployment options, and vendor neutrality. It highlights that both consist of an IDE and a workspace server, but differ significantly in their openness and adaptability.
- Eclipse Che is fully open source, offering extensive customization and flexibility.
- VS Code Codespaces, while user-friendly, is a proprietary product with limited adaptability and vendor lock-in.
- The choice depends on specific needs, with Che being ideal for those requiring customization and open-source solutions, and VS Code Codespaces appealing to users seeking simplicity and integration with GitHub.
The Che IDE vs. VS Code
This chapter compares the IDE options of VS Code Codespaces to Eclipse Che, focusing on default IDEs, extensibility, alternative IDE options, and deployment options. VS Code uses its classic desktop version and VS Code Online, while Eclipse Che uses Eclipse Theia as its default IDE. Both are similar in usability and features, even using the same code base and extensions. However, Eclipse Theia is an open platform for building web-based tools, while VS Code is a free, extensible product based on open source. Eclipse Che delivers a preconfigured Eclipse Theia version called "Che Theia," providing an out-of-the-box experience similar to VS Code.
Extensibility: Che Theia vs. VS Code
Both Eclipse Theia and VS Code support the same extension mechanism, with VS Code extensions being installable in Che Theia. However, VS Code extensions from the VS Code marketplace cannot be installed into anything other than VS Code. Eclipse Che provides its own plugin registry for Theia plugins, and users can extend this registry with their favorite VS Code extensions. Che plugins also include a sidecar that is added to the underlying workspace container, useful for installing dependencies like a JVM. Eclipse Theia offers a more powerful extension mechanism called Theia extensions, allowing access to any API within Theia, enabling extensive customization.
Freedom of choice
VS Code Codespaces is limited to using VS Code as the IDE, customizable only with VS Code extensions. Eclipse Che, however, allows users to select from a list of available editors, including the Eclipse desktop IDE and code-server (an open-source distribution of VS Code). Users can also add their own editors to the Che editor registry, making it highly customizable. Deploying a custom Theia version to the Che editor registry allows for a completely customized cloud-based tool tailored to specific use cases.
IDE Deployment Options
Both VS Code and Eclipse Theia can be deployed remotely and accessed in the browser, as well as deployed as desktop applications. The IDE and workspace server are separate components that can be deployed independently. Users can connect to a remote workspace server via a browser-based IDE or a desktop IDE. VS Code provides the "Remote development extension pack" for connecting the desktop version to remote workspaces, while Eclipse Che requires additional configuration for desktop IDE connections. Eclipse Che focuses on cloud-native development, while VS Code is transitioning from desktop to the cloud.
The Che workspace server vs. VS Code Codespaces
The workspace server hosts the development environment, including the project sources, language server, and tools for building, testing, and deploying the project. Eclipse Che is a classic workspace server, while "Codespaces" refers to the ability to connect an IDE to a workspace. This is achieved by installing the "Codespaces extension" into a container, which can then be registered with an Azure account. There are three ways to create a codespace: creating a container on your own infrastructure, using Azure to create pre-set environments, or using GitHub's integrated codespaces. Eclipse Che is compared to Azure's support for codespaces, focusing on features, extensibility, and vendor neutrality.
Features
Eclipse Che has a head start in features compared to VS Code codespaces on Azure. Key features include creating and configuring virtual machines, where Che allows fine-grained configuration and choice of OS distributions, while Azure offers preconfigured variants. For configuring developer workspaces, Che allows selection from a catalog of preconfigured "stacks," while Azure uses an "install.sh" file for installing additional tools. Che also provides an easy entry path with "factories," allowing a one-click experience for new developers via a URL combining stack configuration and a Git URL. Both Che and VS Code support easy sharing of development workspaces, with VS Code additionally supporting live sharing for collaborative coding.
Flexibility and extensibility
Both VS Code codespaces and Eclipse Che support adapting workspaces and the virtual machines they run on, with Eclipse Che offering more advantages. Che allows deploying different, even custom code editors, while VS Code codespaces is limited to VS Code. Eclipse Che, as an open-source framework, provides an API for all existing features, allowing adaptation or removal of the existing UI and integration with custom infrastructure. Che also allows integration with existing authentication infrastructure via Keycloak. Eclipse Che requires Kubernetes for deployment on any cloud provider or infrastructure, while VS Code Codespaces runs on Azure by default, requiring an Azure account even for custom containers.
Open Source and vendor-neutrality
Eclipse Che is fully open source, released under the Eclipse Public License and hosted by the Eclipse Foundation, with contributions from various well-known companies. VS Code Codespaces is a proprietary feature governed by Microsoft and is not open source. This means that Codespaces cannot be easily adapted to specific needs, and users must rely on Microsoft for bug fixes. Eclipse Che allows users to adapt the source code and fix issues themselves, avoiding vendor lock-in. Che also relies on standards like Kubernetes and a workspace definition format in the Eclipse Cloud Development Tools working group, enhancing interoperability.
Conclusion
The comparison between Eclipse Che and VS Code Codespaces involves several subcomponents that must be compared individually. The choice depends on specific requirements, with Eclipse Che being an open-source solution and VS Code Codespaces being a proprietary product. Codespaces limits users to VS Code as an IDE, while Che allows custom editors. Adapting Codespaces is difficult, while Che offers extensive customization. Avoiding vendor lock-in favors Eclipse Che, while Codespaces offers seamless integration with GitHub. Alternatives like Gitpod and CodeReady Workspaces also exist, and custom solutions can be implemented using Kubernetes.