Hacker News new | comments | ask | show | jobs | submit login

I got node.js to work on Windows XP via Cygwin about 4 or 5 months ago. Here are some useful links:

- Building node.js on Cygwin (be sure to RTFM regarding which version to build). https://github.com/ry/node/wiki/Building-node.js-on-Cygwin-(...

- helpful comments on StackOverflow - in particular running the obscure ash.exe and doing rebaseall seemed to help http://stackoverflow.com/questions/3360948/compiling-node-js...

- self-contained windows binaries of nodejs - I did't try this, but seems like it could save some headaches http://node-js.prcn.co.cc/

I wish I could up vote you, but Cygwin prevents me. Imagine a world where all of the cool software was written on Windows, and the Linux folks had to be happy using Wine to run it at all. That situation would suck; that's how I feel when someone from the Linux side says "it compiles on Windows with Cygwin" as if that's some kind of achievement or favor.

> Imagine a world where all of the cool software was written on Windows, and the Linux folks had to be happy using Wine to run it at all.

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.

I think by "cool software" politician meant "cool dev tools". When you're a hacker, it's easy to get them confused, and it does seem like a lot of cool tools are Unix only. Go comes to mind; it was basically Unix-only at first, if it isn't still.

Actually yes, I did mean cool dev tools. Sorry if that was unclear. However, I don't think Photoshop is a good counter-example since OSX has top-tier graphics applications AND runs on Linux.

> I don't think Photoshop is a good counter-example since OSX has top-tier graphics applications AND runs on Linux.

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).

To be fair, it would be rather trivial to port the upper levels of OSX to any other Unix-like OS. Darwin exposes a very BSD-like interface to applications.

Apple considered, for some time, replacing classic MacOS with Linux (I have used Apple's MkLinux a lot).

Thanks, you're right. I should have checked my facts before saying that.

> as if that's some kind of achievement or favor.

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.

I know that all you've said is true, and I agree with it. Open software is a blessing, built by generous people. If other people want certain features, they are welcome to contribute patches. I want you to know that I agree with this, I've never disagreed with that.

I'm arguing on behalf of a simple hypothesis, that Windows users know Windows and do not know Linux/Unix or POSIX. Moreover, they may not want or may not have the time to learn Linux/Unix or POSIX subsystem. They do not know nor can take advantage of what a "free Unix-like environment" provides. They know what they know. Cygwin adds a heavy emulation layer into Windows which they do not know. To be clear, they do know JavaScript and they do understand what running JavaScript on the server means.

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.

The target audience for node.js is not a group of primitives who cannot understand how a mirror work. There are very smart developers that live their entire lives in the comfortable dictatorship (as in "Microsoft dictates what you'll use") that Windows development is. The audience is sophisticated enough to run node under Cygwin, to compile it from sources if needed. They may have to read something or get used to invoking a compiler from a terminal, but that's nothing a developer cannot master in 2 hours.

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.

My point was more to show that it can be done if people just want to play around with node.js on windows until it becomes a more first class tool. Not a plug particularly for Cygwin, though it sure beats MS-DOS.

I know, and I am glad you managed to get /something/ working because node.js is that cool. In fact, I've been working with it on my Mac and on Joyent's node cloud, but while Cygwin provides a passable experience for Linux hackers stuck on Windows, in my humble opinion it's not a passable experience for Windows hackers that want to use all of the cool dev tools that constantly spring up "over there".

Sorry about your bad experience. I run cygwin okay (not everything works, for example pip doesn't work), and nodejs dev in cygwin has been very pleasant for me so far.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact