- Building node.js on Cygwin (be sure to RTFM regarding which version to build).
- helpful comments on StackOverflow - in particular running the obscure ash.exe and doing rebaseall seemed to help
- self-contained windows binaries of nodejs - I did't try this, but seems like it could save some headaches
Is this a joke? It sounds like it could be, but if it is, I can't tell.
That was the world before ~2005. The use of Windows has always been predicated on the notion that for-pay software is the default, and that, as a business model it is desirable. Linux has always been the opposite. Thus, as Linux users, we get the attention of open source developers -- usually people who are developing things about which they are passionate. We also have to suffer through version <1.0 (often, <<1.0).
The "cool" software, much of it, is still Windows only (or maybe Windows and Mac). The Gimp and Inkscape are pale imitations of Photoshop and Illustrator. Video editing that is as good as Premiere or Final Cut? Forget about it. And forget about modern gaming too.
All of that has to be run with Wine, if it can be run at all.
Driver support is minimal as well -- Nvidia only last week released a beta driver which begins to address bugs which arise in Gnome 3, while introducing new ones. Imagine if that were the case with Windows: your graphics driver did not operate properly with your desktop shell and you have to wait for a new driver.
So be happy that you have Cygwin, which can almost perfectly implement a Linux environment. Wine only occasionally runs a program well enough to be usable.
No, OSX runs on the Darwin kernel, not Linux. For a number of reasons, you can't take an app designed for OSX and run it on a laptop using Ubuntu (or another Linux distro).
Apple considered, for some time, replacing classic MacOS with Linux (I have used Apple's MkLinux a lot).
Every piece of free software we run (that we didn't write) is a favor. It's built by people generous enough to share what they did and shared so the same generous people could cooperate and build upon rhat other generous people did before them. No free license prevents such software from running on Windows and none ever will. If you feel like porting, you will be welcome.
The fact there is really no need to do it, however, because most of it runs perfectly well under Cygwin, remains.
I haven't seen anything about the POSIX subsystem that should be in Windows. It seems to me it could be used to build a more Windows-ish Cygwin.
Also, never forget Cygwin is the work of very generous people who wanted Windows users to have a free Unix-like environment they could use to run code that would be very painful to compile under Windows otherwise.
Is Cygwin a technological achievement in and of itself? Yes, absolutely. Is Wine? Yes, absolutely. Is ability to run node.js or git on Windows through Cygwin? Yes, absolutely. Is that an awesome hack (in the best sense of the word) for people that understand the Cygwin emulation layer? Yes, absolutely. Is it an achievement for Windows-only developers and users who don't understand -nix idioms or POSIX subsytem? No, it isn't.
That's all I'm saying. I'm not offering a better solution -- I don't have one. I'm just saying that when someone from the -nix side says that something runs on Cygwin that they should respect and empathize with what that means for Windows users operationally.
To use an analogy, earlier a youtube video was posted about a first encounter between a tribe in Papua New Guinea and some white travelers. The white people had amazing tools are artifacts -- mirrors, matches, plastic cups, knives, etc -- which the tribal peoples had never seen before nor had a framework of understanding within which to reason about them. Are the tools cool? Yes -- the knife whittled wood far more effectively than their crude tools. Are the tools scary and hard to understand? Yes -- the tribesman covered the mirror with a leaf (!) because he couldn't understand how it worked or if it was (presumably) some sort of magic. The *nix command-line/file-system/permissions apparatus is incomprehensible magic voodoo to someone who's only had Windows console experience their entire life. So for the "white man" to say "but it runs in Cygwin" to the primitive native peoples is perhaps a tad presumptive. That's not to say that the native peoples are lesser beings intellectually viz. "don't eat that poisonous flower", Windows has had IOCP since NT4.
I think it's a wonderful example of the way the process should work that Microsoft is stepping up to help Ryan/Joyent port node.js to idiomatic Windows.
What Microsoft is doing here is preventing the deployment of a non-Windows servers to run node.js workloads because it also runs on Windows, much like what the PR they did with the PHP folks when they made sure PHP ran fine on IIS or, earlier, when Microsoft acquired Sofrimage only to validate Windows NT as a competitor to IRIX. Don't expect any commitment from Microsoft to the node.js community or any continued investment after they reach the goal of diverting enough resources into this port.
And, finally, Microsoft is not stepping up to help Ryan and Joyent. Microsoft is stepping up to prevent Ryan and Joyent to disrupt, in any measure, the Windows ecosystem.