Theia – One IDE for Desktop and Cloud
typefox.io
typefox.io
I don't see the motivation they had to build this other than they wanted support for YANG right? I'd want to see their motivation behind taking on such a big project
The IDE in Eclipse Che can only run in browsers and in the context of a Che workspace server but not standalone as a desktop app. Our customers need a solution that can be hosted from containers, similarly to Che but also run as standard desktop apps, similar to the traditional Eclipse IDE. So Theia aims at both desktop applications as well as cloud applications.
That said, to me the sweet spot of Eclipse Che is not its IDE, but the workspace management. We are in close collaboration with Eclipse Che developers to make sure that Theia can be used within Che. "
The end goal is to have something that has its governance managed by a fondation and that multiple entities can contribute to.
So don't think of it as typefox taking this on their own they're not alone and more contributors will get involved.
Sorry, but no.
If I'm going to run a resource heavy VM rather than a platform-native app, I may as well just keep using IDEA on JVM.
IDEA will most likely hit that problem at some point also...
Building the entire UI in a webview means you're never going to get platform integration. No standard menu bar, no services integration, no remapping menu shortcut keys, no automatic "find command" in the Help menu.
Edit: s/look/look & behave/
Wait, what? I'm pretty sure native UI toolkits are holding up fine. They did fall off the hipster train, true, but that doesn't mean they're dying.
On JVM, maybe it's time to retire Swing, but JavaFX is alive and kicking.
- 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.
"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.
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.
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
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.
Native Electron? Isn't this an oxymoron?
Just wanted to join out that JupyterLab (in alpha now) https://github.com/jupyterlab/jupyterlab also uses PhosphorJS and aims to be a IDE in the browser as well.
It would be possible I guess however.
1. Pen support (it's so much more natural when mind mapping ideas for projects)
2. Great App Support (this kinda made me drop windows as the app store on windows is terrible)
3. A device to develop on (so I could run something along the lines of docker, node etc.)
4. Awesome battery life
I felt that the iPad did 3 of my 4 asks, and I considered using mosh + vim to code in the cloud. However, my vim skills are "meh" at best.
Currently I'm using a cheap windows device (a $500 Asus laptop) and it does not do any of the things I wanted perfectly.
This project appears to change that, because I feel that it won't be too far out of the way to consider getting a native iPad app for such an editor that did everything in the cloud.
Much better browser, pen, and keyboard at less than half the price of iPad Pro + Keyboard + Pen.
I'm really hoping that will get better next year, with Chromebooks that can run Android apps, the 12" USB Type-C Macbook, as well as Windows x86-on-ARM emulation.
I'm looking for a real computing device and don't want to be confined to "toy operating systems" - the option for touch-optimized apps is nice, but unless there is a viable way to use desktop- (and especially terminal-)focused software without hacks I don't really see the long-term appeal.
Purism seem to essentially sell exactly what I'm looking for; plus: There are camera and mic kill switches, which to me seems like something that should've been the default ten years ago...
AFAIK you can run VS Code on cloud without problems since it's Electron to the core.
Theia wants to be free from those problems.
There's two versions of VS Code, the "official" one and "Visual Studio Code - Open Source", and the former contains proprietary bits that are kept that way so other people don't use it to compete with VS.
Project Rider from JetBrains accidentally ended up including one of these bits unaware it was part of a proprietary license and had to remove the functionality that depended on it (CoreCLR debugging), later writing a new implementation to put the feature back in.
This blog post by JetBrains includes a few more details: https://blog.jetbrains.com/dotnet/2017/02/15/rider-eap-17-nu...
I have a comment elsewhere in this thread imagining a headless VS Code with a remote UI in the browser. Would get you something close to Theia with the full VS Code ecosystem.
And still, do those things prevent something else from synchronizing UI state? Completely let VS Code run normally, even with a fake X server if I need... and then another extension that just syncs the current state of each UI panel to an emulated one in browser?
Anyway, sounds like you've thought this through or see obvious holes... I'd really like to understand more of why it's unworkable, or how it could be doable with other compromises. Thanks in advance.
But, I don't do much GUI / client-side work, so I don't know if such a thing is feasible at all.
Theia does use some vscode components like the LSP or the json-rpc lib, but it is NOT a repackaged vscode. It is it's own IDE unlike Sourcegraph I think