Ngl, except for some issues with proxy and networking, WSL is actually a nice way of using both Windows and Linux without having dual boot or using Cygwin.
Getting WSL2 to work with my company's VPN was such a pain that I just went back to WSL1 and resigned myself to the fact that I'll never be able to run Docker in WSL locally.
Don't want to be that works on my machine person but I use docker-ce installed in my WSL2 VM and can push and pull over my companies' openvpn running on windows.
So WSL1 was actually using the Windows Kernel so Networking was more straightforward because you had direct access to network syscalls.
WSL2 is a VM in HyperV with some special sauce I guess. Downside is that means you have the same Network setup like you would a VPN.
So when I'm developing a site and use say trunk serve. I can access it locally on my Windows browser even though it's running on my debian WSL2. However one thing I liked to do on my local network was pull up my smartphone and open ports to look at the mobile view on an actual mobile browser.
Well now open ports in Windows Advfirewall for a service that's running a Linux VM?
Now do this everytime your WSL2 VM changes it's local IP (not your LAN IP), and everytime you switch to a service with a different port.
Super PITA and I also broke just the regular local proxy between Windows-WSL2 trying to get it working. So now I just sigh and use the developer tools in Chrome to pretend I'm on a smartphone.
Word of advice, I recently found out that the inotify implementation is broken on WSL! I wrote an application that works fine on linux, detecting when a file is updated, or deleted or created if I monitor the folder it's in.
However, on WSL, once the file is deleted, I get no further events for that file in the monitored folder.
So while WSL works quite nice, how they could break something as fundamental as that without a big red flashing warning label is beyond me.
I think the networking implementing a virtual ethernet link is pretty cool, but it really sucks when I'm trying to debug web apps when not wanting to use CMD or Powershell.