I have two Macs on my desk, and I do most of my development work on Windows, although I have tried more than once to shift the balance and become the developer who reaches for the Mac first, because the ecosystem around web development leans that way, because the terminal is better integrated, because it is what most of the people I respect seem to use. It never stuck, because on Windows I am faster, the keyboard shortcuts are in my fingers, the tools I have relied on for years are there, some of them don't exist on macOS at all, and the software I ship doesn't know the difference.
The Hierarchy Nobody Elected
There is an unofficial ranking in developer culture that assigns credibility based on what you use. Linux at the top, macOS acceptable, Windows tolerated but suspicious. SQLite for quick things, PostgreSQL for real things, MySQL if you don't know better. Vim or at least something terminal-based; a graphical editor is fine but you should feel mildly apologetic about it.
Nobody voted on this. Nobody demonstrated that it produces better software. It evolved as a set of social signals in a community that, like all communities, developed ways of marking who belongs and who doesn't. The signals feel technical but they aren't. They are aesthetic preferences that accumulated enough repetition to start sounding like engineering wisdom.
The best OS is the one you think in. The best editor is the one you don't notice. The best database is the one that fits the problem.
What Productivity Actually Looks Like
Speed in a tool is not about the tool being fast. It is about you not having to think about the tool. The keyboard shortcut that fires without a conscious decision. The workflow that runs without friction because you have run it a thousand times. The mental model of the environment that lets you navigate without consulting documentation.
That kind of fluency takes time to build, and it does not transfer cleanly between environments. A developer who has spent years in one OS, one editor, one terminal is not being stubborn when they are slower on a different one - they are experiencing a real cost, and ignoring that cost in the name of doing things the right way is a trade that only makes sense if "the right way" produces meaningfully better outcomes.
For most tools and most workloads, it doesn't. The application you build on Windows is the same application. The query you write in one editor runs the same way. The database you reach for because you know it well enough to optimize it is a better choice than the one you reach for because the community approves of it.
The Cases Where It Does Matter
This is not an argument for never changing tools. There are real cases where the choice of OS or database or editor has meaningful technical consequences - deployment targets, native API requirements, performance characteristics at scale, team consistency, licensing constraints. When those cases arise, they are worth evaluating on their actual merits.
The problem is applying that evaluation to every tool decision, including the ones where it doesn't matter, and arriving at a preference disguised as a technical requirement. "We should use this database because it's what serious projects use" is not an engineering argument. "We should use this database because our data model benefits from its specific indexing behavior and we have the operational experience to run it" is.
Most tool choices for most projects fall into the first category more often than developers admit.
What I Actually Do
Windows for development. VS Code as the editor. Bun as the runtime - which at this point is less a runtime and more the platform the application is built for. MySQL and SQLite depending on the project, both of which I know well enough to not need an ORM to stand between me and what the database is doing. HeidiSQL for database work - open source, fast, genuinely good, and one of those tools I have been using and recommending since before you learned to spell influencer. Chrome - and I will not apologize for it. There is no shortage of opinion about Chrome's privacy defaults, and some of it is fair, but I have configured it to fit how I work and I am not going to pretend the developer tooling isn't exceptional. For building and debugging web applications it remains the tool I reach for, and the noise around it has never changed that. And a terminal that, if I am being direct about it, I prefer to what macOS ships or what iTerm2 offers - Windows Terminal with modern coreutils is a genuinely good tool that the community underestimates because the narrative about Windows as a development platform was written before Microsoft started taking the terminal seriously. It has been taken seriously for a while now.
None of this is a recommendation. It is what has accumulated over a long career into a setup where I spend my time writing software rather than managing the environment I write it in. Someone else's version of that looks different, and as long as they are shipping good work, the difference doesn't matter. If you judge and dismiss me by my tools, that is your loss - you passed on the work to have an opinion about the environment it was built in.
The goal is the software, and the tools are in service of that goal, so choose them based on what makes you productive and not on what makes you legible to a community whose approval you never needed in the first place.