Welcome to Johnny’s World I Fixed Windows Native Development January 26, 2026 • Jonathan Marler Imagine you’re maintaining a native project. You use Visual Studio for building on Windows, so you do the responsible thing and list it as a dependency Build Requirements: Install Visual Studio If you’re lucky enough not to know this yet, I envy you. Unfortunately, at this point even Boromir knows… Well put Boromir What you may not realize is, you’ve actually signed up to be unpaid tech support for Microsoft’s “Visual Studio Installer”. You might notice GitHub Issues becoming less about your code and more about broken builds, specifically on Windows. You find yourself explaining to a contributor that they didn’t check the “Desktop development with C++” workload, but specifically the v143 build tools and the 10.0.22621.0 SDK. No, not that one, the other one. You spend less time on your project because you’re too busy being a human-powered dependency resolver for a 50GB IDE. Saying “Install Visual Studio” is like handing contributors a choose-your-own-adventure book riddled with bad endings, some of which don’t let you go back. I’ve had to re-image my entire OS more than once over the years. Why is this tragedy unique to Windows? On Linux , the toolchain is usually just a package manager command away. On the other hand, “Visual Studio” is thousands of components. It’s so vast that Microsoft distributes it with a sophisticated GUI installer where you navigate a maze of checkboxes, hunting for which “Workloads” or “Individual Components” contain the actual compiler. Select the wrong one and you might lose hours installing something you don’t need. Miss one, like “Windows 10 SDK (10.0.17763.0)” or “Spectre-mitigated libs,” and your build fails three hours later with a cryptic error like MSB8101 . And heaven help you if you need to downgrade to an older version of the build tools for a legacy project. The Visual Studio ecosystem is built on a legacy of ‘all-in-one’ monoliths. It conflates the editor, the compiler, and the SDK into a single, tangled web. When we list ‘Visual Studio’ as a dependency, we’re failing to distinguish between the tool we use to write code and the environment required to compile it. The pain compounds quickly: Hours-long waits : You spend an afternoon watching a progress bar download 15GB just to get a 50MB compiler. Zero transparency : You have no idea which files were installed or where they went. Your registry is littered with cruft and background update services are permanent residents of your Task Manager. No version control : You can’t check your compiler into Git. If a teammate has a slightly different Build Tools version, your builds can silently diverge. The “ghost” environment : Uninstalling is never truly clean. Moving to a new machine means repeating the entire GUI dance, praying you checked the same boxes. Even after installation, compiling a single C file from the command line requires finding the Developer Command Prom
Source: Hacker News | Original Link