I am not a user of or developer for Microsoft technologies, generally speaking. I do almost all of both my professional and personal use on a combination of MacOS and Linux. I use almost exclusively free tools (e.g. vim) for development, and so little to no concerns of licensing, product activation, etc.
That being said...
I would challenge you to reframe your way of looking at this: development environments, for work or personal use, should be (as far as is possible given the constraints) completely disposable.
I do almost all of my dev work in VMs that are provisioned by scripts. Reusable, replaceable, reproducible VMs. The host and guest OSes aren't super-relevant, as long as the system meets those goals.
On my trusty MBP, that is achieved through a combination of Vagrant/VirtualBox for server vms (sub with Docker if you swing that way) and Parallels for my actual dev environment. All of my configuration and provisioning are stored and versioned courtesy of github, and I regularly update them as my needs/tastes change.
Now, I don't always strictly adhere to that, I do some work on the host MacOS. But I'm 60% remote, and it's really nice not to have to switch gears too much between home office (MBP) and office office (linux workstation).
You may not want to go this far, and I'm still not sure it was worth all of the effort it took to set up, but I can be productive on a new machine in half and hour or so, and I never have to worry about "works on my machine" kind of issues.