I like to program under Unix-like environments. It is fun, and development tools are powerful, flexible and (many of them) free. Also, Unix command line shells are much better than the one that comes with Windows. What I don't like, though, is wasting time on configuring Unix-like operating systems and rebooting between them and Windows. Therefore, I use Unix emulators on Windows.
On my work machine, I have installed Windows Services for Unix (SFU)[^]. It works great with Windows, and it comes with many great tools. Even more utilities can be downloaded from the Interix website[^]. One thing that can't be downloaded for free is X server.
On my home machine, I have installed Cygwin[^], a Linux-like environment for Windows. It comes with many more utilities than SFU (including X), but it can be a little buggy, and the installation proces is awkward. Also, it is slower.
So far, I like both and still haven't decided which one to install on my laptop.