Cygwin[0] is a lot more mature and has a huge set of supported applications.
Cygwin[0] is a lot more mature and has a huge set of supported applications.
Cygwin is no longer needed when you have real Linux.
I'd say that depends on your use case.
For many folks, WSL is an excellent idea. I've played around with it and it doesn't give me anything over what I already have using Cygwin.
Also, Cygwin+userland is much lighter weight than an integrated VM like WSL2.
A lot of the question is what you want/need. I need a decent shell with a fairly complete unix userland. X is nice to have as well. That such functionality seamlessly integrates with Windows is great.
But I don't need a dev environment (although Cygwin provides that as well) for unix on my Windows box.
I'm sure there are other use cases/software that requires a full blown Linux kernel/environment, but they don't apply to me. I just use VMs (on separate hardware) for that.
And unless you actually need a full-blown kernel, rather than a specific set of tools, cygwin provides a lightweight, mature and well supported alternative.
Don't get me wrong, I'm not claiming that Cygwin is unix. Rather, I say that for a significant set of use cases, Cygwin can be a superior solution.
It all depends on your requirements.
I also find that, for me, cygwin is a better solution for what I want: A bash shell and a decent set of unix-like command-line tools, that (critically) uses the same filesystem as Windows programs do.
I've honestly been kind of perplexed by all the excitement around WSL. A lot of people seem to say they want it for "development", by which I guess they mean web development. And I could see WSL being a nice alternative to running a full Linux VM for web development. But I don't do web development (mostly). I just want a unix-like shell and tools on my Windows box. And I don't want to have to think about whether the files I'm creating and working on live in Linux-land or Windows-land.
Also the filesystem access is shared. That's why WSL is a separate thing, otherwise you could always just run a VM yourself. WSL lets you easily browse files, operate on the same files, and even call processes and pipe results across both sides.