back to Jitbit Blog home About this blog

I'm finally dumping Visual Studio

by Alex Yumashev · Updated Sep 20 2024

I've been a C# developer for 20 years and I've had enough. After two decades of working with the "big" Visual Studio, I'm effing fed up. It's buggy, slow, and frustrating, and I've decided to make the switch to Visual Studio Code which I only used occasionally until now. While I'm still unsure if I can replicate every aspect of my workflow in VS Code, I'm willing to give it a shot — and so far, I'm really impressed.

1. Performance

Visual Studio 2022 performance has been a constant issue. It's sluggish and feels increasingly bloated with every new update. It's like watching paint dry every time I open a project. In contrast, Visual Studio Code feels lightweight and incredibly fast. It does use more memory (obviously) but everything is oh so snappy. The first time I opened my large project in VS Code, I was shocked — it loaded in lees than a second, literally, even with extensions like "C#" and "C# Dev Kit" installed.

2. Better Developer Experience

Running dotnet watch run in VS Code's terminal has been a revelation. It's fast, responsive, and actually works consistently. Visual Studio's "hot reload" feature, on the other hand, has been a constant source of frustration for me. Half the time it doesn't work, and I'm left restarting debugging sessions over and over again. I can't tell you how many hours I've lost to that unreliable feature.

Not to mention other VSCode's handy features, like undo/redo history even after reopening a file, as well as remembering cursor positions and selections, command palette, zen-mode, settings-sync, split editor, built-in terminal etc.

3. Fewer Bugs, Less Frustration

The minor editor bugs in Visual Studio have been endless and exhausting. I remember one particularly infuriating bug where syntax highlighting would break in Razor and .cshtml files whenever I used certain HTML tags or even just adjusted the indentation. It drove me up the wall! Not to mention the bizarre issues with JavaScript formatting that never seemed to get fixed. Since switching to VS Code, I've encountered far fewer bugs. It just feels like an environment that respects my time and sanity.

4. A Thriving Ecosystem

The VS Code extension ecosystem is alive and thriving. Need Tailwind CSS IntelliSense? There's an extension for that, and it works beautifully. Want to visualize your Git history for a particular line (better version of git-blame)? The Git History extension has got you covered. In "big" Visual Studio, I'd report issues through the "feedback hub" and wait months — or even years — for a response. With VS Code, the community is constantly contributing new tools and improvements. It's energizing (and sometimes exhausting) to be part of such an active ecosystem.

5. Cross-Platform Flexibility

One of the biggest advantages I've found with Visual Studio Code is its true cross-platform support. Whether I'm on my Windows PC gaming rig at home or my MacBook while traveling, VS Code runs smoothly and keeps my workflow consistent. Visual Studio's limited macOS version just doesn't cut it for me. Being able to switch between machines without missing a beat has been a game-changer.

But... but... it's Electron!

I have to admit, I was skeptical at first. I've always had a bit of a grudge against Electron-based apps — they've often felt sluggish and bloated. Yeah, I'm one those people who run Slack and Discord in a browser. But VS Code has completely changed my perspective. It's fast, responsive, and flexible enough to let me build the development environment that works best for me. Switching to VS Code has rekindled my passion for coding; it reminds me why I fell in love with development in the first place. While Visual Studio will always have its strengths, I need a tool that evolves with me — not one that holds me back.

P.S. Bonus tip for C# devs

Here's an instant fix for VSCode's high memory usage when working with C# projects, for those who see several gigs or RAM eaten by Microsoft.CodeAnalysis.LanguageServer just uncheck this box: