I disagree. I was a Linux guy before I was a Mac guy and now I find myself a Windows guy.
My Surface Book is solid hardware with a great keyboard, all-day battery, etc. WSL is to the point where there is less weirdness building libraries in WSL than there is on the Mac.
Its not perfect, but the perfect machine doesn't exist.
I find that WSL requires a ton of hacks and workarounds to emulate a real Unix system. For example, I need to run Docker containers.
To do that, I install docker in WSL, then I have to run a Go binary I compiled as root, that lets WSL talk to Windows pipes, which then talks to Docker for Windows.
WSL makes using Windows somewhat tolerable, but it's not even close to having a regular old Unix.
I am using Docker for Windows, the problem I'm solving is I want to produce Docker images from within my WSL. I don't want to do all my work using vim/tmux from within WSL, only to open a Powershell window to actually build the container.
So I have to set up the strange hack I described in order to use docker inside WSL as a client to Docker for Windows.
Since WSL debuted, this is a rather debatable claim. WSL provides a really nice interface and I never had issues except doing the most obscure things (which were buggy on nix too).
My Surface Book is solid hardware with a great keyboard, all-day battery, etc. WSL is to the point where there is less weirdness building libraries in WSL than there is on the Mac.
Its not perfect, but the perfect machine doesn't exist.