The Visual Studio Code Server(code.visualstudio.com) |
The Visual Studio Code Server(code.visualstudio.com) |
We’re disappointed that Microsoft chose to release under the `code-server` command-line name. Our community has produced countless blog posts, videos, StackOverflow questions, etc. that will become difficult for our users to find. This naming decision suggests that Microsoft aims to replace our code-server instead of coexisting.
We will continue developing our code-server until Microsoft’s has parity. As for Coder, we’re focusing more on the platform side (https://github.com/coder/coder) and less on making IDEs work remotely.
I'm symapthic to your plight but you named your product based on 2 common nouns. It'd be like someone making a restaurant called "hamburger" and the complaining that others are confusing people because they sell "hamburger".
If you're starting a new project/product and don't not want to end up here you should probably pick a more unique name. Examples. Python, not 'scripting-lang', "Firefox" not "browser" or "web-browser", "gIMP" not "Image-editor", "mongodb" not "database" etc...
And I know someone is going to nitpick that "Python" is just a noun but in context it's got nothing to do with languages, computing, etc. so it works as not directly describing the product in ways that others are likely to use when the come out with a similar product.
Personally, while I use and enjoy both GitHub and VSCode, I'm wary of buying too much into their ecosystem. So I'll continue to use things like GitPod and Coder's code-server so I can support the wider ecosystem and third-party OSS implementers in this space.
It does look like providing a similar service. IIRC there are a few more similar attempts, but now they're all "sharlocked".
vscode.dev tunneling is nice though. Coder's version once had the similar feature but they dropped it at a point. Also I'd be slightly more comfortable to let MS tunnel my connection vs. a small startup.
They are all a bit different of course. I do worry the MS + GitHub hegemony doesn't have our best interest in mind though.
This is likely the biggest change in dev experience for me in the last ~3 years or so.
Setting up the remote Extension is a pain in the A$$, because it is not possible to install the server by hand. It is side loaded by the extension. So I have to download the extension manually and scp it to ~/.vscode-server/bin/${commit_id}.
If you haven't seen it already coder has a nice VS code server instance that runs like a traditional self-hosted server app and could likely be run in an airgapped environment: https://github.com/coder/code-server
While tramp exists and is cool, it doesnt make for an overly great developer experience -- lsp isnt super pleasant over tramp and it sometimes causes crashes for me.
[1]: https://github.com/xaberus/vscode-remote-oss [2]: https://vscodium.com/
Fixed. (couldn't edit because HN was down for a while)
My previous setup: https://notes.chazeon.com/notes/software/code-server-over-ss...
https://code.visualstudio.com/license/server
Edit: although they also say you may not “share, publish, rent or lease the software” the software which contradicts to MIT. IANAL but I think the intent is that that applies to binaries published by Microsoft, but not binaries you compile yourself from the codebase?
There's vscode.dev (running vscode in the browser). That's apparently just a specific web compilation of the main vscode repo. There are alternate web compilations sitting around (for example https://github.com/Felx-B/vscode-web).
works great, even on small server machines!
edit: as pointed out by others, this is not actually by MS, but works just fine anyway. TIL!
Open VS Code Server takes this barebones implementation and fleshes it out enough to be minimally usable: https://github.com/gitpod-io/openvscode-server (i.e. run it from a CLI command, do basic token auth, etc.)
Coder's code-server (what you link) is similar to open vs code server but predates it and has a bit nicer server implementation, like it can be configured to run behind a reverse proxy or under different web paths more easily. I really like the linuxserver.io container that packages it up and runs it with ease: https://hub.docker.com/r/linuxserver/code-server
It's cheap, reliable, easy and it works like it did 20 years ago so it's completely network issue resilient as I can just attach to tmux again if something borks.
IIRC another benefit, is also that you can move performance-requirements from the local machine to the remote machine, which can be beneficial depending on your situation. Not every company/freelancer has the money for beefy workstations.
In the old days, machines were too expensive, everyone shared the UNIX development server.
Later, giving laptops/desktops to all contractors became too much of an hassle with procurement, giving them VMs was much easier for IT to manage.
Nowadays those VMs are Cloud instances.
Here is the use case.
Alternatively the vscode-neovim plugin actually embeds a headless neovim inside vs code: https://github.com/vscode-neovim/vscode-neovim It's perhaps a bit more complete and featureful vs. the other plugin (like it can run all the same plugins and lua config as neovim) but IMHO it's kind of confusing and weird to have two editors running at once, configured independently.
openvscode-server has had 1:1 parity with a full desktop install of vscode, while coder's variant always had issues with several official plugins.
In coder's implementation several menu options will trigger caught exceptions for basic shit like opening a jupyter notebook, typescript language server frequently crashing, environment variables not being set properly in the correct order of priority, etc.
openvscode-server "just works" on the other hand.
Note that with both implementations the easiest way to get access to the microsoft plugins store is to compile it from source and modify preferences.json. Open source maintainers technically cant distribute it this way out of the box due to Microsoft's licensing requirements. Alternatively, you can always just download the extensions in your browser and drag and drop them into your vscode server window and install them that way.
When using linuxserver.io's container for openvscode-server, traefik worked fine as a reverse proxy to put it behind an https domain I own
Your branding, "coder" and "code-server", is just super generic and popular terms. That's what makes it hard to search for, not the cli command names.
Perhaps since public release, but I was informed by a PM who was part of the original product development that this was a concession to marketing, and it did not always have the name “visual studio” attached.