Arm Mbed OS support forum

MBED Studio decision to use Theia vs VSCode?

I’m trying to understand the reasoning why MBED studio is using Eclipse Theia rather than Microsoft VSCode as a base. (Yes, I know Theia is based on VSCode.)
Can someone involved in the platform’s development give some history?

Specifically, it seems the primary technical difference has to do with VSCode’s architectural decision to keep extensions running in a separate process. Was there some MBED design goal that required modifying the core VSCode functionality?

Hi Burt,

thanks for your question, I can understand the confusion here.
Although Theia uses some components of the VS Code stack (e.g. the Monaco editor) and a lot of the design is similar, they have quite different code bases and architectures.

There are a couple of key differences between the IDEs which led us to base Mbed Studio on Theia:

VS Code is an extensible editor which users can add plugins into. These are primarily designed to be UI components and not existing binaries. One design goal with Mbed Studio was to offer a single installer which set up an environment for embedded development including all of the tools. When we started this project, we found this was far easier using Theia as we had complete control over the code base.

User Experience
Developers are quite limited to how the UI can be extended in VS Code and (until recently) it wasn’t even possible to implement rich UI in side bars. Theia gives us complete control over how the experience is delivered including modal dialogs and wizards.

Online Delivery
It was always our intention to release a browser-based version of our embedded tools. Theia was designed to deliver in this space from the ground up and has meant we have been able to realise delivery of our product in both a desktop and browser environment using the same codebase.
Recently, projects have started to appear which utilise VS Code in the browser (e.g. GitHub codespaces), but there are still technical limitations we can’t work around which aren’t a problem in Theia (e.g. connecting to target hardware from the browser) .

We are keen to introduce embedded experiences wherever our developers want to work, but need to balance this with the practicalities of re-implementing functionality in different IDEs.
Interestingly, both Theia and VS Code can utilise the same plugins (in theory) so one area we are exploring is bringing our embedded functionality to VS Code natively aswell, while still using the same codebase.

1 Like