DEV Community

Sven Efftinge
Sven Efftinge

Posted on • Edited on

Theia 1.0 - Finally a Good Browser IDE

We are excited to announce Version 1.0 of Eclipse Theia, the vendor-neutral open-source IDE platform that runs in browsers and on desktops.

Single Source for Browser and Desktop

Theia is a unique IDE platform that supports building desktop and web-based IDEs from the same codebase. Therefore, as an adopter, you don't need to make an upfront decision about whether your new developer product should run in the cloud, on the desktop, or both.

Not Your Parents’ Browser IDE

Theia is the first browser-based IDE platform that supports all the latest programming language smartness in a depth similar to your local IDE.

First-generation online IDEs such as Cloud9 have paved the way towards browser-based development. However, keeping up with the plethora of programming languages and frameworks that modern desktop IDEs support has always been an uphill battle. This can be solved by growing a massive community of extension developers, or hiring an army of developers like JetBrains, but both are extremely hard to achieve and sustain in the long run.

Theia solves this problem differently by leveraging the largest and most active IDE-extension community on the planet.

Theia Runs VS Code Extensions

The VS Code team has done a great job of creating a protocol-based IDE extension model that runs all extensions in a light-weight sandbox process. Theia natively supports the VS Code extension protocol. This means you can install any of the 16,000+ existing extensions developed by the open-source community in Theia.

Adding this level of VS code extension support to Theia has been a lot of work and took us two years. But leveraging this flourishing community just made so much sense that we knew it was worth it.

Unfortunately, Microsoft prohibits non-Visual Studio products from installing any binaries downloaded from their marketplace (see terms).

Considering that most extensions are open-source and not developed by Microsoft, that’s a pretty sad state of affairs.

This limitation not only affects Theia and all of its downstream adopters, but also releases based on the open-source code of VS Code, such as VS Codium. Fortunately, we have a solution.

Open VSX

Open VSX is an open-source implementation of a VS Code extension registry that we have developed under the umbrella of the Eclipse Foundation. A publicly hosted version of it is available at open-vsx.org and is currently in beta. With Open VSX we want to create a public registry for open-source VS Code extensions, accessible for everyone. We also want to enable organizations to host their own registries within their private networks - a long demanded feature.

We encourage VS Code extension developers to push their extensions to Open VSX in addition to Microsoft's marketplace.

Who is Using Theia?

Theia is used by TypeFox, Ericsson, RedHat, IBM and in many other organisations across the industry:

Ericsson deserves an extra mention here, as they have initiated the project together with us from TypeFox and have been fully supporting the effort from the first day.

So why does Theia see so much adoption?

Flexible Architecture

We have designed Theia, so that adopters can change it in very fine-grained ways without the need to patch or fork the core project. Leveraging dependency injection and a modularization that splits the whole application into individual npm packages provides the degree of freedom a product developer needs.

Good examples for highly customized products are Arduino’s Pro IDE and Arm’s Mbed Studio.

arm's Mbed Studio

Vendor-Neutral Open Source

While the technical flexibility helps adopters to build the tool they need, Theia’s vendor-neutral governance at a well-established Open-Source foundation is equally important. The Eclipse Foundation provides adopters with the assurance that the project doesn't go away and evolves in a well-documented and business-friendly manner.

Community

Most of our adopters are also regular contributors to the project. TypeFox, Ericsson, and RedHat even have dedicated teams working on Theia full-time. Today Theia counts 1k forks, over 7,3k stars and the community forum is growing every day.

Star growth on GitHub

Contributions Made Easy

The Theia project uses Gitpod to provide contributors and maintainers with a ready-to-code development environment. Creating a Pull Request on a software project has never been so easy — you can get a fully prebuilt dev environment within seconds, and you don't need to clutter your local machine as everything runs in a browser tab. The same works for code reviews, when you open a Gitpod workspace from a Pull Request.

Lowering the friction for contributors has a tremendous impact as we are waking up to high-quality pull requests from new contributors daily. (By the way, you can find other such contributor-friendly open-source projects at contribute.dev.)

Summary

With Theia, we finally have a no-compromise, browser-based developer experience without the typical short-comings of first-generation browser IDEs. Theia runs on any modern device such as tablets, Chromebooks, and, of course, your powerful developer machines.

We are releasing Version 1.0 to tell the world that Theia is ready for prime time. As outlined above, it has already been adopted by many, and we are looking forward to seeing what you will build with Theia.

Acknowledgments

A 1.0 release is the perfect opportunity for a shout-out to some of the key people who have helped to make Theia what it is.

  • Anton Kosyakov architected and authored huge parts of Theia and is the go-to person for anyone in the community. His dedication ensures that Theia stays technically healthy and sane. Thank you!
  • Marc Dumais co-leads the project with me and is taking care of a lot of the formalities. I'm especially thankful for his consistency in getting all the paperwork done that was required to move the project to the Eclipse Foundation.
  • Dominique Toupin kicked off the project with me when he was still working at Ericsson. He believed in Theia from the first second, and without his support, it wouldn't exist.

There are, of course, many more, who have put their passion and time in getting Theia to where it is today. Instead of naming everyone here, I am pointing to the top 100 contributors list on GitHub.

Thank you all and keep up the awesome work!

Top comments (45)

Collapse
 
abuassar profile image
Muhammad Assar

I couldn't easily find a single download link for theia instead of github page.

you need to make it effortless to download a ready binary package or installer for win/linux/mac if you seek to reach wide spread.

Collapse
 
akosyakov profile image
Anton Kosyakov • Edited

The easiest way to try Theia right now is by using Gitpod, you can start Theia from sources with: gitpod.io/#https://github.com/thei...

Please also upvote here for vanilla Theia installers: github.com/eclipse-theia/theia/iss...

Collapse
 
gksander profile image
Grant Sander

I get the impression that Theia isn't an IDE, but an IDE platform. E.g., a toolset for creating your own IDE. So you, as the user of Theia, would be the one creating a binary package for others to download.

Collapse
 
sergix profile image
Peyton McGinnis

It's not an application, it's a toolset/platform.

Collapse
 
daniejstriata profile image
daniejstriata

It is compared to VS Code, which is an application end-users can download and run. I fail to understand the distinction. Is a toolset not software that can be run in this context?

Thread Thread
 
sergix profile image
Peyton McGinnis

VSCode is intended as the end product, a full-featured IDE that's suited for virtually any project, but cannot be customized beyond theming and extensions.

Theia is not intended to be the end product. I suppose it can be, but Theia is an IDE platform for you to build and customize on top of.

For instance, let's say that you wanted an IDE that fully supports quantum computing languages and workflows such as Microsoft's Q# and some python libraries. Rather than starting from nothing, Theia provides a fully-equipped IDE for you to work with and customize however you want, since it's entirely open source. With VSCode, this simply isn't possible beyond extensions since it's closed source.

Thread Thread
 
stojakovic99 profile image
Nikola Stojaković • Edited

VSCode is open source.

github.com/microsoft/vscode

Collapse
 
lig profile image
Serge Matveenko

I felt the same. That doesn't matter, imo, that it's a platform. We need a generic IDE to try and then there will be wishes we would want to fulfill via building special flavored binaries.

Collapse
 
jigarshah profile image
Jigar Shah

docker run -p 3000:3000 -v "$(pwd):/home/project:cached" theiaide/theia

Thread Thread
 
lig profile image
Serge Matveenko

That's a possible way to try it in a desktop browser, I agree. But that not the way I would use an IDE on the desktop.

Collapse
 
akosyakov profile image
Anton Kosyakov
Collapse
 
shubhamsinha profile image
Shubham Sinha
Collapse
 
akosyakov profile image
Anton Kosyakov

Good point! For adopters we have example electron build setups:

Collapse
 
rdewolff profile image
Rom

+1000

Collapse
 
therealkevinard profile image
Kevin Ard • Edited

I'm 6 hours into my Theia studies, and so far: I'm completely blown-away by the potential of an IDE framework as compared to an IDE proper.

I'm trying very hard to slow myself down, but it's not working.

I envision a trillion things that should have been, but weren't.

Collapse
 
xgenvn profile image
Brian Ng

I feel the same when first time I hear about Theia. Same thing to JetBrains Opensource Platform and NetBeans platform.

Collapse
 
kayis profile image
K • Edited

"leveraging the largest and most active IDE-extension community on the planet"

By creating your own IDE-extension community?

I mean, the new extension registry won't mirror what's in Microsofts registry and require every extension creator to explicitly load things to the other one, or am I mistaken here?

Collapse
 
svenefftinge profile image
Sven Efftinge • Edited

As explained in the post, Microsoft disallows non Visual Studio products to use their marketplace. We are not creating a new community but rather an additional registry for the same community that allows access from anyone (including e.g. VSCodium).

Collapse
 
kayis profile image
K

I understand that.

It just seems to me that "creating a new marketplace and hoping extension creators will use it" is at odds with "leveraging the largest and most active IDE-extension community on the planet".

Don't get me wrong, I think your new open registry sounds like an awesome idea and I hope it works, but it seems like a very risky assumption to me.

Thread Thread
 
akosyakov profile image
Anton Kosyakov • Edited

RedHat, MS Azure, Elm, VMware, Pivotal claimed namespaces last week and started publishing: github.com/eclipse/open-vsx.org/is...

We are seeding the registry as well: github.com/open-vsx/publish-extens...

Spreading the word would be helpful.

Thread Thread
 
kayis profile image
K

cool, I will do :)

Collapse
 
maksimrv profile image
Maksim

First impression is very good. Thanks for such open source product 👍
It would be nice to see the documentation about how to properly plug own code for server/frontend. Currently it generate some source code and it’s not clear what should I modify if I want to customize server code.

Collapse
 
therealkevinard profile image
Kevin Ard • Edited

The product page has fair help, but the concepts were a little fuzzy to me at first. This kitchen-sink build (and others in the repo) shed some light, then the product page was much easier to wrap my head around.

github.com/theia-ide/theia-apps/tr...

(Backstory: I'm coming from Intellij, not vscode, so I was a TOTAL noob to the whole thing)

Collapse
 
akosyakov profile image
Anton Kosyakov • Edited

You can find some docs here: theia-ide.org/docs/composing_appli...
And follow this Theia workshop: github.com/TypeFox/theia-workshop

Any help with improving docs and workshop is welcomed!

Collapse
 
kchavellas profile image
Kichos Chavellas

The word "Theia" means "Aunt" or "Divine." As "aunt" doesn't make any sense, I assume the meaning is a divine application, facility, utility, etc. So far, so good. My question is, is it so much better than its competition to say it's divine?

Collapse
 
akosyakov profile image
Anton Kosyakov

The answer is in the logo. There are actually 3 things.

Collapse
 
biffbaff64 profile image
Richard Ikin

Theia is the Titan Goddess of Sight, that may have some bearing on it.

Collapse
 
shivayl profile image
_SHIVAYL_

This is nice!
Some years ago I was creating something similar, an IDE that supported extensions from multiple other IDEs and editors, but I soon abandoned the project because it was too much work to be doing it alone and for free.
Keep it up!

Collapse
 
jeanmoroni profile image
Jean-Armand Moroni

Too bad it is based on electron... which means huge memory and CPU consumption, like Slack or Microsoft Teams.
OK, it divides your development workload; but it multiplies our energy guzzling.
And I hate hearing my PC fans rotating like mad.

Collapse
 
akosyakov profile image
Anton Kosyakov

Use browser version, it does not have any electron dependencies. Or better use Gitpod :)

Collapse
 
cfandy profile image
Andy • Edited

@Anton Kosyakov,
Amazing works. Thanks!
I'm from eclipse EMF for a mouse heavy workflow modelling tool.
Two years ago, we developed a cloud-native solution from the stretch. It's a SPA IDE which can do exactly the same graphics modelling out of eclipse modelling framework, and we can do cloud execution. Now we are looking for an interactive debug solution for our project.
Shall we covert our whole project as a Theia plugin to leverage Theia or we can leverage only the coding and extension system of Theia? Previously, I'm looking for a solution based on code mirror and LSP, DAP.
Thanks in advance!

Collapse
 
akosyakov profile image
Anton Kosyakov

It should not be hard to leverage LSP and DAP. Theia is not opinionated about frontend framework. The basic UI element is a widget which is an HTML element with lifecycle hooks. If your current solution is built with JS tech then it should be possible to embed them in Theia widgets. If no then usually backend can be reused but frontend should be converted.

Here is a presentation from last year TheiaCon about how SAP converted their solution: youtube.com/watch?v=Rj35nCxw_9U You can see there are many approaches.

Here is on Theia Widget lifecycle: youtube.com/watch?v=T1HDIy7LfFg

Collapse
 
akosyakov profile image
Anton Kosyakov

Theia is an extensible IDE framework with cloud-first mindset not a patch to electron and VS Code source code to run it in a browser as code server. Theia does provide similar UX and compatible with VS Code extensions but relies on stable components and protocols like Monaco, LSP, DAP and vscode extension api. Besides it is vendor neutral and allow to build white labeled products like Gitpod, ARM Mbed Studio or Arduino Pro IDE.

Collapse
 
saint4eva profile image
saint4eva

Check visual studio online

visualstudio.microsoft.com/service...

Collapse
 
svenefftinge profile image
Sven Efftinge

Yes, that one is really good as well. But unfortunately not open-source and less extensible, so not so great for adopters.

Collapse
 
saint4eva profile image
saint4eva

Yes, visual studio online is extremely good, though the source code of the product is not in the open - some of the components of the product is open source. Monaco and VS Code are owned by Microsoft and they are open-sourced. There are a lot of extensibility points/ APIs, so you can extend it as you want. It is scalable and connects seamlessly with many source code repositories such as GitHub, Azure Repo etc. And connecting with VS Code is amazing - remote -connection, liveshare, better debugging experience and can handle massive workloads.

I would not understand what you meant by "not so great for adopters"? What do you mean by "adopters"?

Thread Thread
 
svenefftinge profile image
Sven Efftinge

I would not understand what you meant by "not so great for adopters"? What do you mean by "adopters"?

I mean other organisations and products who would invent new things on top of existing open-source code, i.e. using Theia as a foundation for their tools.