MSYS2 is basically Cygwin with Pacman for package management, plus several other environments with either GCC or Clang and different Windows-Native C and C++ runtimes.
It's nice, but not perfect. It inherits a lot of problems from Cygwin. File access is still slow (as mentioned in other threads) and symlinks don't behave right (by default making a symlink creates a deep copy of the target, and even NTFS symlinks need to know whether the target is a file or a directory; either way you cannot create a symlink when the target is missing, and this causes rsync to fail, for example.)
MSYS2's strength is as an environment for compiling cross-platform apps for Windows, and I would recommend WSL2 for anything else.
Agreed that it's good for building native Windows software and there are better options for other use cases. When recommending–praising MSYS2 I sometimes forget that the only time I use Windows is to build software for use by other folks who actively run Windows as their desktop/laptop OS.
Re: "Cygwin…plus several other environments[+]", the second paragraph of MSYS2's home page summarizes it pretty well:
Despite some of these central parts [Bash and cli tools] being based on Cygwin, the main focus of MSYS2 is to provide a build environment for native Windows software and the Cygwin-using parts are kept at a minimum.
My "bad experience" with MSYS2 was when I misunderstood how the different environments were set up.
There are several different environments, each with their own different and incompatible set of packages. When you run "mingw64", you are running a different environment than "msys2". If you install a package named "gcc", you are getting the "gcc" intended for "msys2", and not the package intended for "mingw64".
The "Msys2" version ships with Windows headers that are not compatible with some Windows programs, while the "Mingw64" has compatible headers. Then this led to me filing an invalid bug report.
The role of the different environments (with their color-coded icons), and the necessary prefixes to install packages for those environments could be made a lot clearer. And that if you are in the "Msys" environment, all software you build will depend on "Msys".
You’re right, getting started with it can/could be a bit confusing. The website explains everything clearly but is prose-heavy. The naming schemes for the environments and packages make sense after you understand how the system works, but it does seem like there’s room for improvement and simplification.
Mingw
WSL seems to be new now
Cygwin
And this one.