[just to preempt: for various reasons vim or emacs in a remote terminal do not meet my needs in the same ways]
[just to preempt: for various reasons vim or emacs in a remote terminal do not meet my needs in the same ways]
Emacs has had TRAMP[1] built-in for a while now[2].
1: https://www.emacswiki.org/emacs/TrampMode
2: https://www-cdf.fnal.gov/~cplager/cygwin/useful/emacs/tramp-...
So for example, instead of going through the hassle of building Visual Studio Code on Raspberry Pi, where there's no official support, you can simply use the Remote - SSH extension to develop directly on the Raspbery Pi from a Windows computer. This really shines when the Linux machine you're connecting to is headless.
The Remote - WSL extension allows the same thing but in a more direct way by connecting to a WSL installation on your Windows computer.
https://code.visualstudio.com/docs/remote/remote-overview
This feature is also why I've recently been using Visual Studio Code more and more. I think something like Emacs, once you learn it and spend a huge amount of time on, would be more performant and snappy in the end, but Visual Studio Code has too many modern features and a rather frictionless configuration and extension experience that keeps me there.
The big deal is that vscode uses a client/server setup, where a "client" vscode instance runs on your machine and a "server" vscode instance runs on the remote one. Then they figured out how to make latency and/or network intermittencies a non-issue. The experience is basically the same as working locally, except the linter, language server, formatter, and compilation run on the server-side (and hence don't bog down my laptop in this case).
Then there are quality-of-life touches, such as vscode offering to tunnel ports whenever you launch something in the integrated terminal that listens for connections. That is: let's say I run "python3 -m http.server" in the terminal within vscode (where I'm working on a remote project). The http server is launched on the remote machine, and I get a prompt asking me if I want to setup a 8080 (laptop) -> localhost:8080 (server) tunnel.
I was an adept of Jetbrain's various IDEs (and smart completions are still better there for most languages), but vscode-remote works so well that it has won me over.
Not long ago, a friend of mine was considering a new laptop. He was happy with his pixelbook in general, but working in the "c++ with lots of number-crunching" space the pixelbook wasn't cutting it. I gave him an account to my desktop machine to let him try, and he's now a happy owner of a nice workstation for much less than what the laptops he was considering cost. Important point: my desktop uses a residential connection in Spain, and he's in the US. He had 0 issues with latency whatsoever (and I can attest the connection itself does have such problems).
Another use case is remote ssh where I can work on a headless system with a graphical editor. I use it e.g. to work in a minimal Linux VM from my Windows desktop.
The remote docker plugin is a little fiddly to setup, but once running works pretty good.