I have yet to find an use case for WSL, when you can't interact with hardware devices and working with the filesystem has its (performance) limitations.

Docker in WSL2? Yeah sure, but I'd rather install a VM or connect to a remote Docker host.

MinGW/MSYS2 have been around far longer and have none of those issues... Then again, MSYS2 does not have a Linux kernel running under it but that shouldn't be a problem unless you want to run containers.

Filesystem things are faster in WSL+Docker than native Windows for me. At least npm stuff. I'd rather skip the hassle of VM, and why use a remote Docker host? And same with MinGW. I like being able to just do stuff out of the box as if it was an Ubuntu install. Much more ergonomic, and can just follow whatever official guide for the tool I'm trying to use, without depending on someone making it possible to use in MinGW/MSYS.

So I kinda disagree, for all things you mention I prefer WSL.

Same here, Docker for windows is slow, like VERY slow. After I moved Docker to WSL2 my app is starting and running at least 10 times faster. The difference is so huge that I wonder why it is even possible to use Docker natively on Windows file system. It's crazy. I'm talking 60-90 seconds to bootstrap and run each page each time under Windows filesystem to around 5s (yes the app is very slow) under WSL2

> I wonder why it is even possible to use Docker natively on Windows file system

Wait, is it? I thought that Docker on Windows has always run in a VM. Used to be Hyper-V directly and now they're moving towards WSL2[0].

[0]: https://www.docker.com/blog/docker-hearts-wsl-2/

Yeah, You need Hyper-V to run basic Docker configuration on Windows, I just simplified this too much I guess.

The end result is that if you run Docker on Windows with Hyper-V alone it's using Window filesystem and then "translating" this for Docker therefore making the whole process of accessing the files incredibly slow.

I used to work with docker using Docker Kinematic (https://github.com/docker/kitematic) in the past, which basically was a Virtual box with Docker installed inside this VM, and since the VM was some kind of Linux, it worked reasonably well.

The same seems to be the case when using WSL2 - you run VM and Docker inside this VM, removing the file sync/translation part out of the equation, resulting in speed boots.