Visual Studio Code: Why I Keep Coming Back (And the 3 Things That Still Annoy Me)

I’ve spent the last six years staring at a code editor for at least eight hours a day. For a long time, that editor was Sublime Text because it was fast. Then it was Atom because it was pretty (RIP). Now, like almost everyone else in the industry, my dock icon is that blue ribbon of Visual Studio Code.

But after using it through massive project migrations, quick scripting hacks, and agonizing Friday night deployments, I’ve realized that VS Code isn’t actually an editor. It’s a construction site where you are both the architect and the janitor. It is arguably the most powerful tool in a developer’s kit, but it’s also a massive vacuum for your productivity if you aren’t careful.


The “Empty House” Problem

When you first download VS Code, it feels surprisingly light. That’s the trap. Out of the box, it’s basically just a high-end Notepad. If you’re a Python dev, it doesn’t really know how to handle your environment yet. If you’re doing React, the linting isn’t quite there.

The setup effort is where the first bit of friction hits. You don’t just “install” VS Code; you inhabit it. You spend the first two days hunting down extensions. You need Prettier for formatting, GitLens because you need to know who broke the build, and probably a specific theme because the default dark mode feels a bit “2015” after a while.

The friction isn’t that the extensions are hard to find—it’s that they are too easy to find. I recently realized I had 42 extensions enabled. My editor started taking five seconds to open a basic JSON file. That’s the hidden cost of the VS Code ecosystem: it scales as well as you manage it. If you’re the type of person who installs every “Must Have” plugin from a YouTube top-ten list, your editor will eventually feel like a bloated browser tab.


Daily Reliability: The “It Just Works” (Usually) Factor

In daily use, VS Code is remarkably stable for being built on Electron (which is essentially a web browser pretending to be a desktop app). I rarely see it crash. What I do see is the occasional “Extension Host Terminated Unexpectedly” error. It’s the digital equivalent of a paper cut—not fatal, but it breaks your flow.

One thing that keeps me here is the Integrated Terminal. It sounds like a small feature, but having your CLI right under your code, respecting your project root automatically, is a massive time-saver. I’ve tried going back to a separate terminal window (using iTerm2 or Windows Terminal), but the “mental context switch” is real. VS Code keeps everything in one focal plane.

However, there is a weird quirk with how it handles large files. If you try to open a 500MB log file or a massive SQL dump, VS Code will start to sweat. It’ll give you a warning, disable tokenization (syntax highlighting), and even then, scrolling feels like wading through molasses. For those specific moments, I still keep Sublime Text or Vim around.


Where It Gets Messy

Long-term usefulness is where VS Code wins, but it’s also where the “mess” happens. Because the tool is so flexible, your workspace settings can become a disaster. I’ve worked on teams where one person’s VS Code auto-formats code into tabs and another’s does spaces. We spent more time fighting the editor’s “opinionated” plugins than actually writing logic.

The “Sync Settings” feature is a godsend, though. Being able to sign in on a new laptop and have my entire keyboard shortcut map and theme pull down in seconds is one of those “it just works” moments that makes it hard to leave for a more manual setup like Neovim.


The Learning Curve (And the “Wall”)

If you’re a beginner, VS Code is welcoming until it isn’t. The UI is clean, but the settings menu is a nightmare of nested JSON-like checkboxes. You’ll find yourself searching “how to turn off breadcrumbs in VS Code” more often than you’d like.

There’s also a strange “onboarding friction” regarding the environment. VS Code expects you to understand your own paths. It won’t hold your hand through a C++ compiler setup or a Java JDK path the way a dedicated IDE like IntelliJ IDEA will. In IntelliJ, you click “New Project,” and it builds the world for you. In VS Code, you’re often left staring at a red squiggly line because the editor can’t find your Python interpreter, even though it’s right there.


Who Is This NOT For?

I’ll be honest: if you are working on massive, enterprise-grade Java or C# monoliths, VS Code might feel like bringing a pocketknife to a sword fight.

  • The “Full-Blown IDE” seeker: If you want your editor to refactor entire class hierarchies across 50 files with 100% safety, use JetBrains (IntelliJ/WebStorm/PyCharm). VS Code’s refactoring is “good enough,” but it’s not “enterprise-safe.”
  • The Minimalist: If you hate the idea of a tool using 1GB of RAM just to sit idle, you’ll find the Electron architecture frustrating. Stick to Vim or Emacs.
  • The “Set It and Forget It” User: If you don’t want to manage updates, extension conflicts, or JSON config files, this tool will eventually annoy you.

Real-World Alternatives

  1. Cursor: This is the new kid on the block. It’s actually a fork of VS Code, so it feels identical, but it integrates deeper logic for those who want a more “guided” coding experience. I’ve found it faster for prototyping, but it feels a bit “noisier” than the standard version.
  2. Sublime Text 4: Still the king of speed. It opens instantly. I use it for “scratchpad” notes and editing config files where I don’t need a full dev environment.
  3. JetBrains Suite: If you have the budget (or your company pays for it), WebStorm or PyCharm offers a level of “intelligence” that VS Code only mimics through plugins.

The Verdict: Does It Actually Save Time?

Yes, but only if you’re disciplined.

The real value of VS Code isn’t the code editing; it’s the ecosystem. Being able to use the Remote SSH extension to code directly on a Linux server while staying in a familiar UI is a genuine game-changer. It has turned “nightmare” tasks into “five-minute” tasks.

But the overhead is real. You will spend time fixing your editor. You will have an extension that breaks after an update. You will occasionally wonder why your CPU fan is spinning so hard.

Use this if:

  • You work across multiple languages (JS on Monday, Go on Tuesday).
  • You want a tool that grows with your skills.
  • You value a massive community where every error message has a solution on StackOverflow.

Avoid this if:

  • You are working on a machine with limited RAM (8GB or less gets tight).
  • You need a dedicated, specialized environment for one specific language and nothing else.
  • You get distracted by “customizing” things instead of actually working.

This article may include references to tools for educational purposes. No exaggerated claims or guarantees are made.

Leave a Comment