Ask HN: Why do you like Visual Studio Code?

30 points by Hixon10 ↗ HN
People really like VS Code. I am wonder, what is your reasons, why do you love it? Let's help other developers to understand the main advantages of this editor over JetBrains IDEs, Vim, Emacs, and Sublime Text.

Maybe it is one of the following items, or something else:

1. Some fancy hotkeys. Give examples.

2. Favorite extensions. Give examples.

3. Gitpod, or codespaces integration.

4. It is free for use.

5. It is fast for you.

69 comments

[ 5.4 ms ] story [ 147 ms ] thread
For me, fast and simple, but extensible. Using Jetbrains/VS/Eclipse is ok if you use it every day for a single technology, but some people need a text editor + IDE they can use for multiple technologies which kind of works for all.

e.g. I use code to view .net, node, web projects, browsing Andoid code and other languages. I could use VS but it takes ages to start up and I find the search better in Code. Mostly I'm reading rather than writing code though.

Also +1 I used the plugin for creating azure functions recently and it worked 1st time and well even for someone not used to .net or azure.

It works well with other Microsoft products that I use.
I like it because it is fast and there is a nice ssh extension. I test code over ssh on one cloud server and then push to another.
The VS.Code UI felt far more intuitive for me, but I switched to PyCharm because it is far easier to set up and maintain than a VS.Code environment.
This. If you want to save your developers' time. Pony up for a Jetbrains product. Getting VSCode to equivalent functionality takes hours. Dev time is expensive, PyCharm is worth it. (This is not a paid endorsement, I have no connections to Jetbrains other than being a customer who has tried VSCode.)
In my experience it depends on the product.

Rider and Pycharm work great for me but I can’t get Webstorm to work properly with my workplaces large Angular product, whereas VSCode handles it without issue.

> Getting VSCode to equivalent functionality takes hours

Do you have an elaboration here? This in no way matches with my experience, and I'm not sure I understand how this could be the case.

Its free, it has a healthy extensions ecosystem and I can customize it to my heart's content. I don't care for an IDE that comes with their own opinions and the kitchen sink, and I know other people might be looking for an out-of-the-box experience but I have already developed my own opinions and VSCode is flexible enough for me to work as I like
I like it because it offers for free some functionalities that are paid in PyCharm, for example being able to SSH to a remote machine and edit the code directly there.

However, I miss a lot all the refactoring functionalities that PyCharm offers. For instance, moving a class from one module to another module is trivial in PyCharm (all imports from all other files are automagically updated), but it's a nightmare in VSCode (you need basically to go file by file and update the imports).

Seems like the ide that's receiving investment in devtools for indie technologies I'm experimenting with.

Hasn't gotten in my way. It's fast. The quality of the devtools are not perfect but useable.

Remote is the killer app. I don't like VSCode but it is the only modern editor capable of a modern native-ish local UI while running acceptable-ish code indexing and intelligence on a remote server. As my company's monorepo grows, laptops increasingly choke on it. JetBrains Projector/Gateway are interesting prototypes but don't work reliably yet. It's not as bad as VNC, but it feels closer to VNC than to a genuine local native app with a client/server architecture.
I love VSCode in all the ways, but esp. agree the Remote code editing is fantastic.

I still use PHPStorm though, because it has the same full functionality (eg. code outline and navigation) on the remote as the local client.

This exactly. I don't like VSCode at all. I try to stay away from it. I prefer and pay for JetBrains IDEs like WebStorm.

Having said that, remote development in VSCode is perfect. I tolerate JetBrains Gateway for remote dev, but I'll be waiting for it to mature before renewing my JB license next year.

However, some VSCode plugins are great. I might have VScode in remote mode running just so I can use the excellent Docker plugin.

My use-case : I remote from my low RAM bad-container-support M1 to my Beelink mini PC with Ryzen 5600U that has more ram and runs linux (and so has better container support). Tailscale is used on both devices.

Copilot. Nothing else comes close!
Like:

. _amazing_ integration with Julia. The only reason why I used Jupyter notebooks was for the concept of cells. But VS Code does that better AND the code is valid Julia code (as opposed to when using a Jupyter notebook, where the thing generated is not valid Julia code). Same goes for python.

. I LOVE the "Remote SSH" extension. With zero effort, other than installing the extension on my local, I can run VS Code backend on a remote machine. This allows me to, again with zero effort, be able to work on a machine that might not be great (like my laptop) but point the backend to some big machine and do some serious data crunching with a frontend on my laptop.

. I really like the CTRL-SHIFT-P box (it's called the "command palette"). It's the ability to _search_ IDE commands/features from a search box. This is in contast to having to memorize a hotkey (like vim) or clicking around various dropdowns (like Microsoft-inspired stuff).

. Like it's not vim-fast, but the UI is still quite fast.

. You CAN customize, but on the other hand all defaults are quite good.

I've been a huge vim fan for a long as I can remember, but VS code has replaced it for all my coding. The only situation where I still use vim is if I need to open multi-Gb data/log files.

EDIT: As other people mention PyCharm - are you nuts? PyCharm is VERY sluggish. I hate it.

(comment deleted)
Never liked it. Takes an age to load up, but I guess once it's launched you can keep it open, so there is that. Then there's the MS telemetry to worry about, although VSCodium[0] addresses that.

[0] https://github.com/VSCodium/vscodium

Maybe it's because I'm on an M1, but I've never noticed the start time on VS Code. Does it take a while to load up? I start it maybe once every week or two (restart after updates) and keep it open after that.
Maybe OP includes the startup of things like language servers in that time. In my experience VS code editor itself launches very quickly but that doesn't mean the full IDE is ready to be used. That said, I haven't experienced particularly long startup times either.
On my current gen Windows 11 box it takes 5-6 seconds to launch and 2-3 seconds to finish opening a new window, which to me is pretty jarring.
The telemetry can be turned off.
> Takes an age to load up, but I guess once it's launched you can keep it open, so there is that.

I load up my editor once per day...if it's not still open from yesterday. You can CTRL+W to close a tab, but there's no reason to kill the whole app. I perpetually have a terminal, editor, and browser open. As long as CTRL+N or CTRL+T are instant, and it's instantly responsive after ALT+TABbing into the app, startup times are negligible/immaterial.

I guess that sometimes I'm in VSCode, while other projects might be in Notepad++, Visual Studio, or various vendor-specific IDEs, but a project will last weeks to months.

What's your workflow if not tabs and workspaces? Why would you ever close the whole application?

It is extensible, free, and frequently updated/well maintained. I'm not a MS fan, but they did a good job with this one.

Favorite extensions is a meaningless thing to ask for, it is entirely dependent on what you are using VSCode to make. But there are good extensions for TS/JS/React workflows.

It just works, fast enough, nice enough, has the addons I want.

It was fun toying around with emacs for 3 hours per day to install new shit and make it more useable back in uni but I actually have stuff to get done these days

Syntax highlighting & cross platform.
Zen mode is great. Ctrl-shift-k + ctrl-z and I'm free of all the fluff and ready to code.
14 year Emacs user.

1. Fuzzy command completion like Emacs helm-M-x

2. Remote shell integration that is better than Emacs TRAMP.

3. Works more reliably than Emacs.

4. LSP support.

5. Works on Mac, Windows, Linux.

6. Can cajole coworkers into using it and thus have deeply integrated tooling in our workflow that applies to everyone.

Things I miss: 1. Org mode (particularly org-capture)

2. eval-region

3. helm-sloop

Agreed on org mode. I'm more of a vim + vscode user, but I did try spacemacs once and org mode was a big take away for me.
I tried out VSCode a year ago coming from emacs, but I couldn't bring myself to get started because I missed Emacs' helm-find-files too much. VSCode needing to have directories 'added' before it can navigate to them, and not really showing you the directory tree structure was already a dealbreaker for me.
Yes, I admit this is a pain-point I have no solution to.

My current project is mostly contained to not very many sub projects, so it hasn’t been an issue.

To be honest, I was a little afraid when I commented that you'd point out some simple thing I had missed, and that I would then feel compelled to give VSCode another try. So thank you for helping me keep my emacs security blanket.
I don’t really use VSCode as much as I use VSCode extensions.

It’s the default target these days so when you go to get set up using Flutter, the heaps game engine, Angular, PlatformIO, etc. they all have VSCode extensions.

If I am doing something that I don’t need or want an extension for I will use Sublime Text.

The remoting extensions for remoting over SSH, into Docker, and into WSL are really killer features. Nothing else has the same workflow and ease of use or even comes close, to my knowledge.

The other thing is that Visual Studio Code generally just works and gets me to writing code without issues. I came to it after trying to give Emacs a try after multiple times of doing so. I could sort of wrangle Emacs to do what I needed it to do, but I was having to write code for Emacs and search forums and poor documentation on how to do so, and even then, it was buggy. Switching to Visual Studio Code took just a few minutes of installing a couple of extensions, and then I was off writing code.

It is a little bit slow and sluggish at times, but it isn't an issue at the moment.

The .devcontainer integration is also pretty slick. Pull a repository, open Visual Studio Code, and it will open up in a Docker container with your environment all configured and ready to go.

Because it has handled anything I threw at it (platforms and languages) without missing a beat and free. Hard to imagine what would do better.
Doesn't have all the feature of msvc for C++, or it requires integration.
> 5. It is fast for you.

This.

Compared to Java based IDEs specifically: whenever a Java person tells me any Java app is fast, I try it, and I can feel the latency. It's been this way for 20 years now.

I like it for its flexibility and relatively light weight comparing to an IDE. Only complain is that I wish I don't have to learn js/ts to develop plugins.
I like that it's another example where web developers made something that systems developers haven't been able to.
I actually hate it
I don't hate it, but it is a tool of last resort for me. It's interesting reading the comments here from people who like it. I've always been curious about what the appeal is.
Compared to Emacs and VI: The world has standardized on different UI conventions, leaving these 2 in the dust. Text editing should use the conventions as laid out by e.g. windows notepad: Arrow keys, standard keys for cut/copy/paste. The difference is not only shortcuts but the whole GUI paradigm.

Comparex to Jetbrains:. It is 1 tool that can deal with all text processing, not a different product for each language. It can deal with a PHP+ Java+C hybrid, including some javascript and SQL.

Vs Jetbrains and Sublime: Free. This also means no license management and no credit card unsafety (I am not in the USA) or payment processor madness.

Linux has no real notepad++ competitor. Kate comes close, but vscode comes even closer.

For me the greatest feature of VSCode is that it is a neovim frontend.

To me it isn't a vim competitor, but a different way to use vim.

I feel the same way - I absolutely love having vim keybindings & the command palette together. I prefer vim for editing text, and vscode's defaults for everything else.
How do you set this up? Any drawbacks?
Install the extension and point it to the neovim binary, lastly set the affinity for the extension (to make it fast). The extension description documents some of the downsides, obviously vscode wasn't purpose build as a neovim frontend and some extensions or settings can not work (potentially they don't even make any sense), the documentation points out that your current init file may cause problems.

The alternative is the "regular" vim extension, which is more limited in functionality (but it even emulates common extension, like commentary) but potentially easier to set up.

But in the end you can get a "real" vim together with all the tooling (debugger, autocomplete, syntax, etc.) vscode extensions provide, which I think is very neat.

The only big UI thing is that they do not support multiple windows for the same workspace, which is a massive productivity drain and the most requested feature for years. It will probably never be done.