VS Code on a Remote Server(github.com)
Try-it on mybinder.org, w/o login or signup (in Jupyter): https://mybinder.org/v2/gh/betatim/vscode-binder/master?urlp... Ephemeral machine. enjoy.
It actually runs on my iPhone 8 Plus like a breeze.
If there was a way to solve the annoying zoom-in behaviour when the editor or any text field was focused it would be workable.
Seems like a good option for those would-be iPad-using developers if they can easily run other environments.
Try it for anything non-trivial and it starts to get unworkable quickly. I was trying this on my iPad pro, hoping that it would be a good remote IDE, and it doesn't quite work with the Apple keyboard. I had such high hopes! But when arrow keys don't work, that makes life a bit difficult on an iPad!
(FWIW, RStudio server has similar issues, but they switched editor components recently to try and get this working better).
That’s too bad.
I don’t do much in that way normally, but it might have coaxed me into actually using my data plan a little while on the road!
Was it mainly UI bugs because of the device or did it actually grow sluggish?
Not only VSCode is available on mybinder - There is also a RStudio in browser: https://hub.mybinder.org/user/binder-examples-r-twi4fgdz/rst.... Thank you for a link!
Many years ago (around 2011/2?), I remember there was some company that was taking care of emulating native Windows applications in browser, i.e. Notepad++ editor or Serious Sam game but I can't remind the name nor link to archive.is nor any other source...
your link to rstudio binder doesn't work
Wow. This is going to be a major game changer for remote development work, and it's a perfect counterpoint to the "Electron is stupid just write it in C" that we hear a lot. Because of the flexibility provided by separating the Node-based logic and processing layer from the web-based presentation layer, VS Code lent itself well to this kind of innovation. Of course, browser-based IDEs aren't new. But they've always been a beast of their own; this will work seamlessly with the tight VS Code integrations numerous languages and frameworks have.
Imagine needing the complexity of docker, browsers, vs code when a much simpler (and compared to this which is running in http? - secure) tool already exists :), ie
No one remembers the "No Machine" NX protocol (X protocol with compression, without unnecessary roundtrips and some other optimizations)? I think I've tried it in the early 2000's, looks like they are still alive
With version 4 of their protocol they went closed source, but before that it was released as GPL (don't remember if it was the case of their client/server, IIRC they were proprietary) anyway I think V3 is used in the X2Go client/server. There was also a Goggle client in Python years ago...
NoMachine essentially made themselves irrelevant by not upgrading their client software often enough, IMHO. I was using all sorts of VNC hackery to make it fast and loved NX, but it was weird and niche (never worked quite right on the Mac) and still slow when compared to RDP and Citrix, so the rise of Ansible and other sorts of automation blew it out of the water for server management.
For end-users, Citrix was just way better, even if more expensive, and there was no compelling reason to switch...
I use x2go actively for all my servers. It is very fast, even over slow connections (much better performance then VNC and RDP used to have) -- thanks to great compression techniques (so do not expect 256 colours when connecting over GSM network). It is a lovely piece of (OSS!) software.
Nice to hear it's working well.
I found out today that X2Go version 4.1 is available on Debian Stretch via "backports"; I don't need it at the moment but if I'm bored in the future, I could play with it without much friction...
Can Nomachine/X2go run a server on a windows machine?
X2Go shouldn't work, unless you intend to run it on a VM or maybe the WSL as it's a modified Xorg X11 server, but probably it's not what you are asking.
NoMachine, according to their download page, should support Windos/Mac/Linux on the server front, but I don't have a direct experience.
NoMachine runs on a Windows server. It accesses the remote desktop. But if what you want is a Terminal Server like NoMachine's Terminal Server for Linux, I think you'll be disappointed. That's not possible from a legal perspective.
Ten years ago, UltraVNC or RDP were the fastest remote desktop options for Windows. I also can recommend TeamViewer, despite it has a slightly different focus.
I used it until a few month ago: it worked better (lower latency and no need to specify the resolution) than VNC but clion doesn't work well with NX, so I switched to VNC.
No. The X protocol is objectively shit. It's so shit, modern toolkits don't even fully use it anymore. Instead they do all rendering locally and pipe the composited pixmaps over to the X server via DRI. Over a network, guess what? No DRI. Meaning uncompressed pixmaps get sent over that network link every time a redraw happens.
Wayland, Pipewire, and H.265 will be a much better general solution to remote desktop access. In the meantime, VSCode via browser is a MUCH better approach than trying to forward it over X over any but the fastest network links.
To clarify your statement about Wayland, it doesn't support remote desktop access in itself . A remote desktop server would sit on top of Wayland.
X forwarding is very slow. Some potential reasons are discussed here : https://superuser.com/questions/1217280/why-is-x11-forwardin...
I like X-forwarding in general, but VSCode and other electron-based apps really run like ass over remote X11.
Definitely not recommended.
That's just a different kind of complexity to transmit interactions and UI rendering. It's built for much more general usage which is why it fails at a fine-grained low-latency coding experience on anything other than a LAN.
Yeah that doesn't really cut it for remoting over the internet into a VM in the cloud. As far as securing this it's as simple as tossing a few lines into your reverse proxy config.
Because there’s nothing simpler than X11, right!? Also there's no dependency on docker - that's just a demo.
I tried that in the past and it's unusable over typical internet latency.
Or simply mount a dir with sshfs or similar :)
I’d rather use the tooling of VSCode than ssh into some shoddy configuration of vim
> I’d rather use the tooling of VSCode
What they're suggesting allow you to do just that.
X forwarding is not secure at all.
Over an SSH tunnel?
And impossible using Wayland
I'm a huge fan of RStudio server.
I splurged on an expensive desktop, while I'm using an old laptop with an i3 processor and 4GB RAM my brother gave me.
RStudio server let me work from the same R sessions, wherever I was, while giving me (high end) desktop performance for running simulations like MCMC, wherever I was -- from R.
I did similarly with Jupyter for Julia, but I always preferred Atom/VS Code. So my work flow, away from home, was using things like remote-ftp and ssh. But I can't seamlessly continue a session I had at home from my laptop. Needless to say, I am excited about this.
Looks good, but it's for R only, I guess?
Effectively. These days you can use a Python kennel in notebooks and get syntax highlighting, but not much else. Python and SQL are supported but second class use cases.
The new version (in preview) has better Python support:
Yes, I was quite happy with reticulate, when I tried it.
I like the workflow of working on code in a script, with hotkeys to run code blocks in the REPL and jump to the next block. If I am actively working on code, I'm unlikely to want to run the entire file, but that is the default in Python for VS Code, for example. So in terms of quickly getting comfortable and focusing on the work, reticulate with RStudio worked well for me. I also like it more than Jupyter, unless you're making reports where mixing code with markdown and LaTeX is great -- although RStudio supports this too.
But I've also used a lot more R than Python, and am already comfortable with RStudio. For someone who hasn't used RStudio before, there's probably better options to jump into Python for data analysis.
I brought up RStudio Server in the first place because I find it to be convenient, and even use it at home in place of RStudio Desktop, so that I can resume the same session I left at home remotely on my laptop.
Code-Server looks like the equivalent of RStudio Server. While I still haven't tried code-server (still planning on it -- just haven't yet because I'm not used to downloading and running binaries I find online), it has those same benefits, and much broader language support. I am happy to see it.
Can you elaborate on the remote development use cases you have in mind? I struggle to see what makes this better than developing locally and pushing/pulling code via git or some other VCS.
I currently use a Windows 10 dev laptop because I use it for other non-development tasks (ex. Creative Cloud) that require Windows. So I'd already need to run in a VM. And then there's the issue of making SSL certs and setting the hosts file to capture our domains, and installing all the build tools. I've got a 1.5 Mbps connection with horrible latency, my server has gigabit fiber somewhere in NoVa. With this, I can throw up a remote IDE with high quality plugins on our dev server, which is just a low-spec clone of prod. I can do a docker system prune and rebuild everything from scratch in seconds instead of hours because the npm packages download instantly. And it helps to stop "non working code -- push to test" commits in our GitHub.
Another would be developing ARM code using native ARM toolchains on a SoC board.
Scientific computing, specially when you'd like to do visualizations of data that is big/can't leave the server. It's also possible in Jupyter notebooks using port forwarding, but I don't see it for development involving data, as much as for data exploration or presentations.
Until recently I was stuck on a very locked down Windows machine (no vm, no docker, no admin rights..) while we target Linux on the cloud. The only way I could be productive is through remote development. We got macs and I still just develop remotely because the data in all in there.
My work involves a lot of smaller scripts that need to run on very large datasets. Git was impractical for the frequency of my pushes so I resorted to the old scp or ssh and paste to my workstation. With this I can streamline my whole process.
There are many cases where there is a desire not to have a company’s code base floating around on people’s laptops. For these folks remote development is a good option. It mitigates the risk of losing intellectual property.
My understanding is that much, if not all development at Google works like this. I don’t know their specific policy but a friend works on a similar project internally.
Google devs access the repo locally most of the time through a FUSE file mount. So the code is never written to local disk, but still accessible locally as far as you can tell.
(The other ways of writing code aren't publicly mentioned yet in any talks or papers that I know of, so I'll leave that one alone)
From the 2016 ACM paper.
> Most developers access Piper through a system called Clients in the Cloud, or CitC, which consists of a cloud-based storage backend and a Linux-only FUSE file system. Developers see their workspaces as directories in the file system, including their changes overlaid on top of the full Piper repository
I've used something like this in the past when working with tools that are difficult to host locally.
Why setup your codebase and all the dependencies to run locally on a laptop when you can just spin up an instance on a server that matches your production environment and remote into it to work?
HIPAA - I want to be able to build data pipelines against patient data without the data itself leaving the server. Having my dev loop live on the same server as sample data is better than working against fake or synthetic data locally
Doesn't that just mean that the data is constantly leaving the server every time you run analysis on it? Or at least the reports on said data.
Potentially but not necessarily. Two thoughts:
1) I may not need to see the data itself during most (or all) of my dev loop, but just see any errors that are thrown.
2) Taken as risk mitigation, data temporarily cached in your browser is less risk than data permanently stored on your laptop, esp. when the threat you are mitigating is lost / stolen laptop.
If the reports contain only aggregated or de-identified data (i.e. no PHI) then that is fine.
Aggregate reports are fine flying on and off. Individual-level data, exactly the opposite.
I could see this being useful if you needed to get some work done and you don't have access to your usual development machine.
> Because of the flexibility provided by separating the Node-based logic and processing layer from the web-based presentation layer, VS Code lent itself well to this kind of innovation.
Game Changer? Innovation? This sort of thing has been possible with x-windows for decades.
X forwarding is totally unusable over crowded, throttled, public WiFi or even good internet speeds with hardly any latency at all. The web is designed for those environments.
"browser-based IDEs aren't new. But they've always been a beast of their own; this will work seamlessly with the tight VS Code integrations numerous languages and frameworks have."
Yes, I evaluated AWS Cloud9 and walked away, because it was obvious that it could never compete with the ecosystems of the major editors. New tools and frameworks will keep coming, and proprietary cloud developer environments won't keep pace.
This project or Theia look much more viable, if they can maintain enough compatibility with VS Code.
Theia relies only on stable and documented APIs for compatibility which are not move fast and don't get removed, not on patching and exposing of VS Code internals.
https://github.com/theia-ide/theia Theia is the Monaco editor on a remote server. I've found the docker containers to be mostly stable
Theia is a lot more than that. Theia is an Eclipse project that is aiming for VS Code extension compatibility (and already has results to show for it).
Theia remains the furthest along of any that I've seen. I'd love to know if someone thinks another "VSCode in browser, running on a remote server" is along further; there seems to be a new one every other month!
Is it Electron based on the desktop as well, or web only?
"The frontend runs in modern browsers or as a Desktop app using Electron with either local or remote (cloud) backends." from https://www.theia-ide.org/
The Eclipse Che project (which I believe Theia is part of) is also very exciting in this domain.
Nice. This is really cool. I know a lot of people who love VS Code; nice to see it get a handy feature.
For any Emacs users looking for an equivalent, you can edit a file over ssh like so:
Dired, etc. works like a charm. Best if you have your ssh key installed on the remote box.
If you are in eshell,
Even better, most programs "just work" as if you were on that machine.
cd /ssh:computer.name: ls ...
Even ‘M-x compile’ works. And entirely seamlessly.
It’s quite amazing.
And here's how to do it in vim:
I had the worst interview with these people (codercom) that I've ever had in my career as a developer.
It essentially consisted of them sitting me down with an old crappy laptop that kept logging out every few seconds and asked me to write an encrypted reverse proxy from scratch while simultaneously asking unrelated technical questions with a time limit.
I guess to test how people code with distractions and stress? But, yeah I definitely don't want to work anywhere that looks at their potential developers that way.
Sounds like how you test the multitasking abilities of fighter pilots..
Ha good to know. I chose not to do the on-site after they asked if a weekend was OK.
Nope. If I succeed I’ll just end up on the other side of the table interviewing candidates on weekends...
Its not for everyone.
It sounds like you are trying to excuse an embarrassingly bad interviewing process.
Bad because it select people who can handle stress and distraction and doesn't complain? If that what they looking for then I see no problem with it. They are free to select whatever criteria they see fit.
The way they interview in my work place these days also hard and imo ridiculous but yet they still find someone who meet all the criteria.
> Bad because it select people who can handle stress and distraction and doesn't complain?
Bad because they don't eliminate the stress (as much as possible) and distraction.
Well assuming the purpose are to select candidate that can handle those then it doesn't make sense to eliminate those.
Exactly. It's a glimpse into what they value most in candidates which is indicative of the culture.
If you want to work somewhere full of distractions, crappy hardware, and lots of stress then look for those kinds of interviews.
Which is not necessarily bad. It's relative.
If you're into that kind of lifestyle day after day, sure.
Not for me but I'm sure there are other who are okay with that lifestyle. To each their own.
True. It's a culture of burning people to the ground because they're disposable. Not everyone is into that.
Interviews should be a good experience, and I’m sorry we failed at that for you - it certainly wasn’t our intention
I am excited to try this and hope it proves easy to setup and reliable to use.
X11 forwarding is just terrible, completely useless over WAN.
sshfs is also a bad solution for coding as it doesn't do inotify properly, so if a file changes on the remote end it doesn't properly notify your local mount of the changes. Even worse, doing tons of small i/o operations (which is exactly what git does) is terribly slow with sshfs over WAN.
Right now I do most of my work in vscode locally and use the "Run on Save" plugin to automatically rsync my code changes to the remote server(s). It's the best solution I have found after trying many things.
vim is great for remote work too. very great in it's own right. But even despite the electron-based UI, the local, "native" experience and plugin ecosystem of VSCode is unmatched IMO.
I wish there was a way to run VS Code in headless server mode on a remote host and then connect to attach to it from my local machine.
That's exactly what this lets you do.
The browser traps many keyboard shortcuts. Ctrl+w would close the chrome tab, not the vscode tab for instance. As a result, many shortcuts won't work.
I think you can reclaim some by running in full screen, but it's not great.
I think maybe he's asking without using a browser, instead open VC code and attach to a server maybe?
VS Code is already an electron app, so the browser is running exactly the same code.
Well, not really. This runs it in the browser. I’d like to run it as the actual VSCodr app with all of the benefits of the menu bar and shortcuts.
Does this / something else allow me to do something like this but with the actual VS Code app? I.e, like Live Share but in a more persistent way? I don't really need the extra flexibility of the browser, I would just want to offload computation to a non-battery powered device.
FYI https://coder.com is the hosted service for this
No pricing information and JS error thrown when trying to sign up... Oh well
I've been looking for something just like thing for a while. Apache Che didn't do much for me. Just didn't work the way I thought it should. How's the Firefox support for this?
It seems to work fine in Firefox as far as I can tell.
Can this be made an iOS app / PWA with proper keybindings for iPad with keyboard? Wondering as I can’t use my JupyterLab on the iPad as it does not transmit ‘Shift + Enter’ to run the code.
When we started the Theia project (theia-ide.org), we considered doing a large patch on VS Code as well. But we decided to go down a more sustainable approach by reusing the important building blocks from VS code (editor and vscode extension protocol) with stable APIs, because rebasing a large patch on a fast paced project is a PITA.
Theia is about to complete the VS Code extension support. At that point it will be the better option as it is architected to run in remote scenarios from the ground up.
My biggest problem with Theia is that the menu structure and appearance/feel is very different from the actual VSCode editor I am used to on the desktop. This was not the problem with Codercom. It reduces friction to move from the desktop to the cloud. If this could be solved, I would certainly prefer theia more. At the moment, I just can't customize it enough to get to my liking: https://news.ycombinator.com/item?id=19396894
Interesting. Only recently I came across https://stackblitz.com which is more or less VS Code in the browser.
StackBlitz is Monaco in the browser. No extensions or terminal. Works great for certain kinds of front-end dev, but more complicated build tooling aren't available and only JS/TS are supported.
Ahah. I'd never heard of Monaco. Thanks!
Interesting in its own right, but the actual heavy lifting here was done by the vscode team; in how they envisioned and implemented the clean separation of UI and backend (such as language server protocol).
There are other previous attempts at running vscode in the browser - such as Ives Van Hoorne's very popular https://codesanbox.io. Curious if code is being shared between these projects.
Unfortunately, we didn't share code with CodeSandbox.
Most definitely throw props to the VS Code team for the great architecture. It would have been much more difficult if it wasn't for their foresight.
Running this on a VPS and works great.
Exactly what I was looking for to code at my public library, which provides macs but no permissions to install software.
I haven't run into any issues so far, except for the obvious permissions issues which were easy to fix. Extensions all install. I'm sure I'll have more to say about it as I use it more heavily.
What this solves is one of the reasons why many vim/emacs users can't leave/change their editors so easily ;)
Remote interpreter support is something I've been waiting for a long time. No word since September on the timetable, though: https://github.com/Microsoft/vscode-python/issues/79
This will be very cool when someone packages it up to be a full IDE experience. Things like automatic language completion for multiple languages, project based view, etc. This is amazing and might make things like a chromebook much more viable for me and many other developers.
If you don't mind installing Linux on your Chromebook you can run VSCode or anything you want natively.
I've been running GalliumOS on mine for years and it's superb. It might be the best $350 I ever spent. I wrote a huge review and write up of the process at: https://nickjanetakis.com/blog/transform-a-toshiba-chromeboo...
I would still get the same Chromebook today too if you can find one. That specific model happens to be a perfect storm of massive value / great specs at a low price.
This does exactly that. You can install whatever VS Code extensions, language servers and runtimes you want on your remote machine, and the local (web) IDE will use all of them as normal.
Check out Eclipse Che
To me Che is an Enterprise IDE, which integrates with the deployment platform. The majority of people just want an IDE in the browser, like c9 or vscode.
The phone number requirement pissed me off a bit.
Facebook does a lot of work like this for its internal development uses (also, when it used to open source Nuclide).
I think this is a good first step, but there's a lot more problems that are harder to solve than what this offers (and are what I'd consider the main problems that need to be solved...)
One example is language services. Integrating something like C++ autocomplete is difficult, and not something they seem to have done (looking at their page). The right way to do it is to run the C++ autocomplete on the server, and have some way of providing those suggestions over the connection to your local editor.
Where "some way" == the language server protocol
Yeah, that's definitely the direction people seem to be moving towards.
shouldn't this be possible? I don't see why not?
Yes absolutely. I use LSP with VS Code every day. This solution shouldn't prevent me from continuing that
> The right way to do it is to run the C++ autocomplete on the server, and have some way of providing those suggestions over the connection to your local editor.
No need for integration. Its really up to a C++ plugin as this is just straight up VS Code.
This might be a ridiculous question but I'm looking for a way to do windows C++/C# development from a mac. Is there any chance this might allow such a workflow? Unfortunately, I need to access some pretty low level dll's that are not cross platform compatible at all.
I use a mac for all other development except for this project. I have nothing against windows, just looking to simplify my development workflow across all projects.
I work on a Mac all day, and besides VS Code/VS Mac I also use RDP extensively to my Surface. Set it to 16bit, use wired Ethernet, and it is as fast as native Windows rendering, even in Retina/HiDPI.
Install a VM, share folders with the binary/source code.
You could keep it to .Net core, but this limits integration.
But the answer of RDP is not sarcastic... as it is probably the only way to get what you want.
RDP to windows ?
The other day I setup a version of this using Theia-IDE, which uses Monaco as the editor I believe. The project is open source (Apache-2.0) and has a strong community.
It would be a nice project to get a Docker service running where users could sign-up and get an instance with persistent storage for their projects.
Are you aware of Gitpod (https://www.gitpod.io/)? It's one-click online IDE for GitHub based on Theia. You can have as many workspaces as you want which are continuously replicated and never deleted, bring your own custom Docker image and it's free for open source development.
I just run a full remote mate based Ubuntu desktop that I connect to via chrome remote desktop or x2go. I made a quick script that I run inside a vps instance or container to build it:
I wish also IntelliJ Idea could do this. Very nice BTW.
This. If JetBrains launched a self-hosted remote IDE like this I would make that my daily driver in a heartbeat.
I tried both Theia and Coder-com, but at the moment it seems Codercom comes closest to the actual VSCode feel. Theia has modified stuff to be better suited to use from a browser, but actually this took away from the customization options. I prefer to have minimal interface... and with codercom I can get close, except it still has a menubar to show.
True. The team is heavily aligning for over a month now. Next release will give you the VS Code look & feel.
That would be killer. Looking forward to this...
I'm going to try baking all my dependencies for my language plugins and editor tools. Could be interesting with the built in terminal.
FROM codercom/code-server RUN apt-get update RUN apt-get -y install curl gnupg RUN curl -sL https://deb.nodesource.com/setup_11.x | bash - RUN apt-get -y install nodejs
I've been always looking for something like this. I used Cloud9  for a moment but I gave up using this after Amazon acquired it. It's shame to look how a tech gaint destroyed a great product.
I use cloud9 and am pretty happy with it. It lets you connect to any instance anywhere (I use ubuntu) and it works as expected. How do you feel like they destroyed it?
I have to say it because no one else has yet. Vim, Emac, Nano, Pico, etc. has been doing this with good ol' fashioned SSH decades before this. It fascinates me to see editors constantly reinvented over and over. Is text really that complicated?
Next time you should just assume someone has said it and move on without commenting.
It fascinates me that people think that innovation should just have stopped dead in the late 1970s when all technology was apparently perfect.
If you can't see the difference between a text editor over ssh and a full IDE in a browser tab you need to seek medical attention; you may be having a serious stroke.
I don't think a tricked-out emacs config is missing many IDE features. What did you have in mind?
I want to see this work with Atom so bad. Cos, Julia's Juno is only on Atom.
I tried it out with Julia, for something reason it didn't recognize the syntax after installing the Julia extension...
can it run the Julia extension and execute the Julia code in the IDE?
I've been using this on my remote workstation for the past week and is pretty cool! Still rough around the edges but works very well so far!
I've almost let go of IntelliJ in favor of this.
No pun intended... Is the point of this to run chrome locally to run a webkit instance on a remote server, with added latency?
It's an evil plot to greatly accelerate the heat death of the universe.
I can't find anything yet regarding debugging, I'm curious how that would work.
It doesn't yet.
Dreams of working over 2kbps satellite link (Iridium Go) - shattered.
It does look like you have to download a 10Mb js file, but once that is downloaded and cached, it uses a websocket to communicate with the server on the backend and only necessary text will be sent to the browser. I don't think the bandwidth requirements should be too much more than a terminal editor over ssh.
Why would anybody use Atom even after this?
I was going to say this is the same thing as coder.com, but this is their open source repo.
Why not just make a remote desktop / VCN connection to the server?
More often than not, working seriously through vnc/remote desktop is miserable and a last resort. Some people don't seem to mind though. I'm curious if their productivity suffers? It works fine for checking on things, but it's a window-in-a-window, copy/paste never consistently works (no matter the server/client software), I haven't seen good solutions for audio, scaling/resolution, and bandwidth/latency vary greatly. It's made me get much better with ssh/terminal/vim and pushed me further away from an IDE. I can see a webapp being a decent compromise. I think most people are fine with Gdocs over Word/Excel.
Teradici is really good, and amazingly efficient on bandwidth.
The Teradici company license their technology to other vendors: it's what AWS Workspaces uses.
I tried it last year and Teradici seemed to work really well when you were in the same region (time zone-ish size area) or using an internal LAN with a decent connection. For low latency or low bandwidth situations VNC worked way better. VNC also had a lot more options for tuning. Another issue I had was that they had me set up a vpn for Teradici, while for vnc I'm just ssh tunneling the port.
"vpn for Teradici"
This is probably why it wasn't so good. I've only used the AWS Workspaces client, which handles encryption, and that worked even on 4G connections.
VNC over the internet is not pretty. Plus X Windows has to be installed on what might otherwise be a headless server. Windows is lightyears ahead of Linux on remote desktop, so it would probably be fine on that.
SSH and VIM... since 1995. Best feature: no telemetry.
Transferring text data to power IDE functionality is a lot smoother and faster than streaming a full desktop over the internet.
Haven't tried it but I'm assuming it's much much smoother.