The use case I am interested in is the following: at my company, code has to stay on central servers/infrastructure, you shouldn't clone it on your laptop. The only choices to work are either a graphical editor through a remote X session or a terminal-based editor, both having important shortcomings. Having a complete IDE (electron or browser) that edits files remotely be really nice in that situation.
But a more practical reason is that some legacy software is designed to be run on these company servers, it expects certain things to be at particular places, so you need to work on them. Again, this is not ideal (and we try to change that little by little when possible), but that's how it is right now.
Almost all of Theia's features are based in the backend.
The emacs equivalent would be like having emacs in daemon mode and a tcp based emacsclient locally. (I wish that existed)
Also the idea is to have something a bit more modern and appealing to the mass of javascript/web devs out there.
Theia is still far from replacing emacs, but as an emacs user myself and a Theia dev I hope I can bring what I love about emacs to Theia :)
The local socket opened is used only for configuration between emacs and emacsclient see: https://github.com/emacs-mirror/emacs/blob/master/lib-src/em...
So it seems possible with socat indeed, I'll have to give it a try :)
One problem that I see however is that emacsclient also forwards signals to emacs when the window changes size for example, I don't think that will work with socat
"So you would build one application and run it in both contexts. Theia even supports a third mode, which is a native desktop app connecting to a remote workspace."
Which implies the browser version is connection to a remote workplace by default.
How you setup vms/docker or something is up to you however as long as the theia backend (nodejs) can run in it.
- Runs in a Browser for the purposes of editing files locally
or
- Runs in a Browser and we have a whole backend way of spinning up a VM/Docker/something for you to do things with as well (The new defunct https://www.nitrous.io/ did this so you could do things like remotely run pg, your Rails stack, etc.)
Both are good/bad for different reasons, mostly just curious.