Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: Why do you like Visual Studio Code?
30 points by Hixon10 on Nov 21, 2022 | hide | past | favorite | 68 comments
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.



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.



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.


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.


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.


It depends on the language and codebase. For a lot of projects I use the IDE that has all the tooling built-in like Visual Studio for C# projects, IntelliJ for Java, PyCharm for Python, etc.,. Log files, CSV files, various other miscellaneous files, and pretty much any other code I come across I use Visual Studio Code. Even if there is a good IDE often I'll just use Visual Studio Code if I'm dealing with things where the IDE is just as likely to get in the way.

The main thing I like is that by default I can just edit text with plenty of keyboard shortcuts, without the bloat of an IDE, but there's also an extension for practically anything I might want to do. I can also do all my command line work from it, run things and debug from it, etc.,. Guess I've sort of made it into an IDE that only has the bloat (features) I need, and not extra stuff.


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


> 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?


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.


I work with 3+ programming languages every single day, so learning +30 keyboards shortcuts of a single editor that works OKish with all of them beats having 6 JetBrains products each with similar, but still different keyboard shortcuts.


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


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.


1. Looks decent, right out of the box.

2. Configured well, out of the box.

3. Performs decently (albeit nowhere nearly as well as vim or Sublime).

4. Remote editing.

5. Wealth and ease of installation of extensions.

Background: Have been using UNIX since the mid-80s, have tons of experience with vi and later vim, and generally prefer CLI over GUI.


I like that it's another example where web developers made something that systems developers haven't been able to.


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.


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.


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).


Honestly, I liked it quite well up until I had to use it in an org environment for Python development. The only way to configure VSCode to accept custom Windows environment variables or change the run dir means you either have to run your code as a task or in debug mode. It does not support simply configuring the environment variables and running the code in the integrated terminal. So yeah, it might be not not there as an IDE for me.


> It does not support simply configuring the environment variables and running the code in the integrated terminal.

The "terminal.integrated.env.<platform>" setting configures the integrated terminal environment variables.


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.


I think its greatest feature is that you can setup one environment (with a lot of options) and get very good tooling for a wide varity of languages. No need to learn about the ideosyncracies, absent features and novelties of different IDEs.

If I want to try out something different (or familiar) all I need to do is install one extension (and maybe some packages) and for the most common languages I get a debugger, autocomplete, syntax, etc. without needing to look for a language specific IDE which might or might not have the features I want. I can switch between different tasks all without leaving a common, relatively complete environment. Likely any given repo contains different languages, even if it is just markdown having one software which does it all is pretty neat.


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.


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.



Yes.


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.


It's ideal when you don't have a specific tool for something aka IntelliJ is generally better for java, but for looking at 'whatever' especially new/mixed repos where you don't want to set up an env. then VSCode is it.

And TypeScript.


Installed yesterday for the first time (VSCodium "variant") on linux via snap.

I was using Atom (will be retired in Dec this year) but Zen is not ready nor testable. All I do is bash, basic python, basic ruby and some markdown/asciidoc so no need for special extensions and VSCodium seems to fit with reasonable defaults.

I am also fan of Geany which is very lightweight and has some plugins but the UI feels a bit outdated and some extensions are orphaned.

My dream of an editor: FOSS, lightweight, modern GUI, multi-language and with a nice API for extensions (I will seriously try vim/neovim some day)


Because it is a great example of Microsoft's strategy to take over the IDE space similar to the old Embrace-Extent-Extinguish:

- Embrace the open-source movement and publish an open-source IDE so people can't complain it is not.

- Extend the product with an ecosystem of extensions and integrations that depend on your IDE.

- Extinguish competition by creating a dependency on proprietary platforms such as GitHub and Azure.

Bonus: Fill it with spyware because Google Chrome demonstrated most people don't understand the potential consequences.


> 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.


It's like a very well-presented emacs but I don't have to remember 50,000 key sequences, or function names, or variable names.


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 is fast and there is a nice ssh extension. I test code over ssh on one cloud server and then push to another.


It’s got extensions. That work.

It’s easy to install and start using. Immediate.

It’s customizable. My workspace is perfect.

I have just one keybind customization and that’s to cmd + J or ctrl + J to switch between integrated terminal and editor. Without making the terminal disappear.

I was using spacemacs prior to VSC and now I spend more time coding and not fiddling some settings all the time.


For me it is project-dependent configuration. I can setup hotkeys (i.e. F5 for debugging, F7 for compilation) and it will get written into JSON file which is then part of the project (workspace).

So when I have other PC and download project via Git, all hotkeys are working as previously without setting the Visual Studio Code itself.


I first started using it because it has good support for both Python, Cython and C/C++, with intellisense, in the same application, and without constraints on the build system. And on top of that it's free. And it has nice git integration (with gitlens).


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


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.


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.


1. ctrl+p and ctrl+shift+p = everything you need

2. Github Copilot

For me it's the successor of Sublime Text and Atom


It quickly becomes invisible like it should be and not take a moments more thought than it needs to be able to focus on real works

The extensions are nice and handy, and the ability to run it in gitpod is pretty sweet too


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.


I was using Sublime, and only switched to VS Code after starting to use Gitpod. But I gotta say that the whole exentions ecosystem is much better than Sublime's.


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.


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.


It's good for editing CSS files because it shows colors directly and for each color it gives you a color picker to modify it.


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.


I expect to see "Why you should be using VSCode in 2022" on your blog tomorrow.

What a thread!


Doesn't have all the feature of msvc for C++, or it requires integration.


It works well with other Microsoft products that I use.


Copilot. Nothing else comes close!


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.


extensions!


0. I install it and it Just Works. I'm just a C# wageslave, so my experience may be atypical, but:

1. I download and run the vscode installer, either on Windows (boo, hiss, I know), MacOS (boo, hiss, I know) or Linux (some recent Ubuntu, boo, hiss, I know, should build my own distro and then complain vscode doesn't work, but, sorry, busy busy...)

2. I clone a repo, open the .csproj or .sln; vscode offers to download and install the (boo, hiss, proprietary, I'm sure, I know, I'm sorry, not sorry) bits required to deal with that

3. I do my work, compile, run, debug, all fine, no issues, can set breakpoints, inspect variables, get InteliCode<tm> (yes, boo, hiss, should learn to appreciate code without helping wheels, sorry, not sorry), check in my branch, create a PR, be done with my day (boo, hiss, yes I know I should be tweaking my dotfiles and such, but, you know, busy, busy)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: