Is cygwin a ghetto too?
2009-10-14 / 13:00 / dave
We all know Windows is a ghetto (at least for developers); I just googled for confirmation. Unfortunately I’m stuck there because of work and have been using cygwin to make things easier.
Unfortunately I’m beginning to think cygwin is a ghetto too. You can compile some source, but there are enough differences to be annoying. Specifically you can’t compile libraries to link against other windows apps (like for Python & Haskell libraries) and the path wrangling & soft links break in any native app. It’s only nice if you don’t leave it’s confines.
So maybe a better analogy would be that cygwin is like having a really nice loft in a bad neighborhood.
In contrast MinGW seems more interested in making Windows habitable. Maybe it’s like bike paths & community gardens?
Anyone have any experience with MinGW? I think all I really need is the GCC tools, ssh and bash.
PS: and yes I’ve thought about VMware, etc. But I have to release under Windows anyway, so there’s no point having to maintain two environments. I do have an Ubuntu laptop but I never end up using it.

MSYS is pretty okay but it’s still difficult to compile more complicated programs – in particular GNU autotools tends to blow up when presented with Windows paths.
much MUCH faster than Cygwin for just command-lining around though!
MSYS at its core is a practically unmaintained fork of an old Cygwin version. There’s no actual MinGW version of bash and ssh. Instead, the MSYS versions of those rely on the msys DLL, which is little more than a renamed Cygwin DLL. Hence the speed advantage is a myth, because it has the same performance issues as the real Cygwin, in particular regarding fork().
Porting bash to plain MinGW would be a big effort requiring the replacement of all uses of Unix-specific interfaces and concepts with Win32 stuff. Essentially it would amount to recreating much of Cygwin.
Btw, Cygwin does come with a MinGW compiler. Just compile with option -mno-cygwin to create native Win32 binaries.
Interesting. I’ll probably try setting up MinGW/MSYS & removing cygwin from my path to see what I miss.
@ak: I’d read that before and tried it, but didn’t think to try it for linking with Haskell libraries. Unfortunately I think the Python windows binary is built with MSVC.