I use Cygwin on a regular basis. It's basically indispensible, because it's the only thing that does what it does. But I get the strong impression that it was designed to punish Windows users. Just off the top of my head:
* It has no idea about Windows file system conventions. IIRC, the default install directory is "C:\Cygwin".
* The "default" install is super bare-bones, and missing a lot of pretty basic Unix utils. This would be a minor complaint, except:
* The installer--the bit that you download--is also the package manager. This means that if you install it and then delete the installer like a responsible, space-conserving user, then the first time you realize that you don't have, I dunno, rsync, you have to download the installer again. And then, unless you having to manually navigate to your Downloads folder every time you want to install a damn package, you have to find a place for it to live on your drive and set up a start-menu shortcut for it. These things are why we invented installers, so why doesn't the installer do them?
* And, as you may have guessed from that last bit, there is no way to install packages from within the Cygwin terminal. In fact, you have to close all open terminals every time you want to run the package manager. You can imagine how much fun that is. The excuse for this is "such a program would need full access to all of Cygwin's POSIX functionality. That is, however, difficult to provide in a Cygwin-free environment, such as exists on first installation." In other words, they can't provide a proper package manager because then they couldn't make the installer and the package manager the same program which they shouldn't be fucking doing anyway.
* Every time you run the installer/package manager, you have to click "Okay" seven times (yes, I counted) to confirm a load of options that you will almost certainly never change after first install.
This ran way longer than I intended. Apparently I am fussed. :-/ The thing that really gets me is that this isn't even a case of Unix grognards not knowing or caring about Windows standards. There is no modern OS where installing an application off of the root directory is acceptable. I don't get it.
I think Cygwin is trying to be an Operating system ontop another operating system. Windows is in C:\Windows, so there is some logic behind Cygwin being in C:\Cygwin. It's not ideal, but I wouldn't call it all together illogical.
The package management is indeed a mass. The install.exe should literally install ONLY the barebones system plus some kind of terminal app, like Putty (because CMD is a pain to use), and then open the terminal to continue installation from there.
I look in on the Cygwin users' mailing list every now and again and I have a lot of respect for the devs and how they run their project, finding a usable middle ground between Windows and Linux (Cygwin at its core is a DLL that emulates POSIX and Linux-specific system calls).
The installer being the package manager threw me when I first started using Cygwin. However, when I researched the issue, I can see how the choice made sense. Unlike a Linux system, you can't upgrade the Cygwin DLL in-place while it's running.
apt-cyg [1] is a nice simple bash script for managing Cygwin packages. I find very useful for avoiding the GUI installer when I just need to add or remove a few packages. For software that doesn't require an upgrade of the Cygwin DLL, they can be installed / removed from inside Cygwin itself.
I used Cygwin when I was on Windows but my advice is to use Windows for the client programs and run a headless Linux VM for everything else. Export its filesystem so you can use Windows to edit files but ssh to Linux to work with a terminal. You'll get a real package manager too.
Did you stop reading after the third sentence? I addressed that specifically later on. A lot of Cygwin's behavior is no more acceptable in Unix than in Windows.
And no, I don't use Cygwin to "escape" Windows. Windows is a perfectly functional GUI for casual daily use. I use Cygwin because it provides useful tools and utilities that aren't available in Windows.
Still runs in the Windows terminal, right? Small as it seems, one of the first things to push me to OSX from Windows was the ease of copying and pasting in and out of the terminal.
For the past couple of years, it uses mintty (based on the same code as putty) as its default terminal. I find mintty to be a very fine terminal emulator and is easily configurable; its default colour for rendering ANSI Blue was too dark for my liking but I was able to change it to the same colour that xterm uses.
It supports UTF8, 256 colours; copy-pasting is simple and easy. I suppose the only mainstream feature it's lacking is tabs -- but that doesn't bother me.
This is fixed for Windows 10 thankfully, along with a few other features that have been missing a while [1]. Multi-line copy, paste good paste support (correct formatting), newlines following resizes, transparency, etc.