Last week Stephan Wissel pointed me towards Eclipse Theia, an open source cloud and desktop IDE platform written in TypeScript. This provides the VS Code experience in a browser.
Firstly, there are some assumptions and misconceptions that are worth addressing for people coming from a Notes / Domino background.
That Eclipse, Not That Eclipse
Domino developers know Eclipse as a development IDE, on which Domino Designer is built. That is merely the most well-known product of the Eclipse Foundation, the open source organisation. Other products Domino developers may have heard of are runtime platforms like Glassfish or Jetty. Eclipse Theia is nothing to do with the Eclipse development IDE. It is just another project delivered under the auspices of the Eclipse Foundation.
Does this mean the Eclipse IDE is going away? No. As the launch blog post on EclipseSource’s website says, it’s a completely different technology stack using TypeScript rather than Java and SWT. So if something is built using SWT, it can’t simply be migrated. But there is a lot more flexibility because of the ability to use it in a browser (hosted in the cloud or deployed via Docker) or as desktop Electron app.
What About Eclipse Che and Eclipse Orion?
If you’re already aware of the Eclipse Foundation, you may already be awareof Eclipse Che and Eclipse Orion. In a blog post on JAXenter one of the people working on Eclipse Theia gives detailed background. So where does Eclipse Theia fit into that? The extension system of Orion was found to be too secure and lacking flexibility. With Theia it was possible to leverage a lot of standard tools like linters, debuggers, transpilers etc. This is one of the reasons it’s managed to develop so quickly.
As an article from December 2018 highlights, Eclipse Che is a workspace server and IDE which only runs in the cloud. Theia can be installed locally or remote, and can access a workspace that’s local or remote. Indeed, while the Eclipse Che server is still being developed, Eclipse Che has adopted Theia as the default web IDE for Che developer workspace.
This also means a lot more investment in Theia since the end of last year. Indeed Google are using something built on Theia as their Google Cloud Platform shell editor as are IBM for their cloud editor for Cobol.
Current State and Future
My approach was to download it and run it in Docker (you’ll see the reason here for my recent blog post on Docker and Data!). As soon as you see it, you’ll notice it feels very similar to Visual Studio Code, assuming you’re used to that product.
A big strength of Eclipse Theia will be the Language Server Protocol concept, which will allow custom language support. This could have some interesting implementations.
One of the big areas that needs completing before widespread adoption is supporting VS Code extensions, but that’s on the roadmap targeted for Q2 2019. Fortunately the Red Hat team have done a lot on that already for Eclipse Che. It seems to be possible to add extensions as an Eclipse Theia developer, but as someone more used to develop on an IDE than develop and IDE, I will welcome this functionality being more UI-driven. The team have also been working on a visual debugger, which will also be a key addition.
I’m still unconvinced on the benefits of building an IDE on top of another – the key is ensuring you can easily keep current with the base product. That’s not happened with Notes, maybe that’s more specific to the architecture. Another limiting factor on building an IDE on top of another is if there is a subsequent significant rewrite of the core that requires major redevelopment by those who have built on it. Hopefully the groundwork will scale for future directions of the platform. But the extensibility of Eclipse Theia is certainly interesting. Its an IDE I’ll be keeping close tabs on over the coming months, particularly to see where it might align more closely with current development environments.