
Porting Node to Windows With Microsoft’s Help - icey
http://blog.nodejs.org/2011/06/23/porting-node-to-windows-with-microsoft%E2%80%99s-help/
======
krmmalik
This is great news, i cant upvote this enough. Ever since learning what Node
is, its always excited me.

I'm only into part-time/hobby development and so havent been able to justify
spending the time (or the money) to do a Unix based OS setup for this, since
all my machines run Windows.

With a node executable and native Windows support, it means i can have a
dabble more often, which could lead to completion of a real project, even if
im only working on it part time. I think for that reason alone, it will
increase adoption of Node many fold. Not that i have anything against Apache,
but it might just get unseated as the hobbyist's first choice as multi-
platform web server (assuming its still on the top spot. I havent used it in
ages).

I just hope it doesnt get restricted to the Windows Server family of OSes. I
did a quick dig, and can see Windows 7 supports IOCP, so i'm hopeful.

~~~
dualogy
Ubuntu: free. VirtualBox for Windows: free. Even 512 MB virtual RAM for the VM
should be sufficient for Ubuntu 10.10 to get you started. No need to wait! =)

(I've meanwhile reversed my setup to reflect the majority of my dev work:
physically installed Ubuntu, virtualized Windows.)

~~~
krmmalik
thanks. that is something i did have setup. its a very useful stop-gap
solution. but at some point one does inevitably have to work with the platform
itself, and in all fairness, i just feel 'safer' in Windows. simply because
its quite the learning curve to learn development but then to learn about a
new OS adds to that.

I do see what you are saying though, and its ideal for someone that isnt as
unfamiliar as i

~~~
upthedale
Since graduating a year ago, I seem to have turned into a Windows guy, simply
because I use it all day at work.

Having a reflective moment a couple of weeks ago, I decided to learn something
completely different (for me) and try Ruby. Not wanting to become type-cast as
a Windows guy, I chose to do it on a unix based system. For this, I use an
Ubuntu image in Virtual Box, and have been very happy.

> I just feel 'safer' in Windows.

I guess I could say I'm the same, though I think its more down to simply
preferring Windows 7's UI/UX over the likes of Gnome and KDE. I've also tried
customising a whole variety Linux window mangers, but always gave up.

So what I'm doing now is using Virtual Box in headless mode, then ssh-ing in
with X-forwarding enabled. This gives me new icons in Windows 7's task bar for
every 'remote' Linux window I have open. (though really I don't use much more
than a terminal and maybe gvim). To an observer looking over my shoulder, it
would just appear that the 'remote' Linux applications are native Windows
programs.

[edit] I didn't really address your point about the learning curve to learning
a new OS. This is valid issue and all I can suggest is to give it a try, and
using a VM is an easy way to just dip in. You can get pre-installed Virtual
Box images for many Linux distros such that it is really easy to get started.
Unfortunately, my set-up took quite a bit of effort to get started (even with
my familiarity with unix), but using a full-screen Linux VM is a good place to
get started.

I guess what I was describing is just where you can go with it once you're
comfortable.

------
vyrotek
Ooh, node on Azure. Finally a good excuse for a .Net guy like myself to
finally play around with Node.

~~~
latch
This doesn't surprise me, but it does amaze me. What was stopping you from
playing around with Node before? I know that comes off as flippant, but I'm
genuinely interested in understanding this self-imposed limit on learning.

~~~
josephcooney
I'm speculating, but...Barrier to entry? If you're not familiar with the UNIX
stack then getting up to speed on that just to play with node might not seem
like a great idea (especially if you don't have a lot of spare time) or lack
of applicability? It can often be really frustrating to get up to speed on
something you know you're never going to be allowed to use in your current
job. Some places are MS-or-the-highway shops...

------
boneheadmed
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-(...](https://github.com/ry/node/wiki/Building-node.js-on-
Cygwin-\(Windows\))

\- 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...](http://stackoverflow.com/questions/3360948/compiling-node-js-on-cygwin)

\- 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/>

~~~
politician
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.

~~~
jessedhillon
> _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.

~~~
andrewflnr
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.

~~~
politician
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.

~~~
jessedhillon
> _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).

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

------
iamelgringo
(Node.js Windows server side) + (HTML5 + javascript + CSS on Windows 8 native
) == really really interesting

------
kenjackson
Nice. The first time I heard a node.js talk my first thought was, "shouldn't
be too bad to implement with IOCPs". Glad to see it happening.

------
Flenser
Surprised that Microsoft would support V8 as a server side JavaScript engine
instead of doing something with Chakra.

~~~
forgotAgain
Embrace, extend, extinguish.

~~~
icey
What was the last thing Microsoft successfully "extinguished"?

~~~
forgotAgain
That doesn't mean that it isn't still their modus operandi.

------
iambot
thats great, funnily enough loving working with node, is one of the things
that pushed me over the edge and made me buy a mackbook pro, sick of having to
deal with cygwin on windows. but this is good news, albeit too late for me.

~~~
endtime
Out of curiosity, what's wrong with cygwin? I'm not a big Node guy, but I run
it on cygwin for the sake of CoffeeScript and I've written a few small Node
apps as well. Hasn't been even slightly painful.

~~~
Derbasti
Not fast, ugly, bad integration in the OS, often outdated, bad package
manager. Well, still better than not having a Unix prompt I guess.

~~~
rbanffy
The minTTY terminal helps a lot. Windows console is, indeed, a horrid
environment.

~~~
MatthewPhillips
Try Power Shell.

~~~
contextfree
... which runs in the standard console, and therefore does nothing whatever to
address the problem with the Windows console being awful.

~~~
MatthewPhillips
It adds a bunch of useful stuff to the Path including select, sort, and ls.
The lack of utilities in the standard cmd is my major gripe, what's yours?

~~~
contextfree
You were responding to someone's complaint about the lousy console window.

------
moomin
Now tell me they're writing a SQL Server driver, and I'll be very
interested...

~~~
jonursenbach
I highly doubt that they are, but I wouldn't put it past anyone from the
community to have one shortly after Node for Windows is released.

~~~
LawnGnome
Microsoft wrote an SQL Server driver for PHP as part of their push over the
last few years to get people using PHP on Windows:
<http://sqlsrvphp.codeplex.com/>. I suspect they'll do the same for Node, if
they're serious about this.

------
chrisbuc
This is great news - although I'm more than happy using it on linux, it will
help adoption by being "officially" supporting windows.

------
baconner
Overblown .net developer panic in 3...2...1...

~~~
SigmundA
I am not panicing, just resolved that MS is probably deprecating .Net, it's
obvious by the messages they are sending.

Hell they can't even settle on a single UI technology, .Net has 3 right now,
looks like a 4th coming in Win8.

~~~
JonoW
Please read this
[http://arstechnica.com/microsoft/news/2011/06/windows-8-for-...](http://arstechnica.com/microsoft/news/2011/06/windows-8-for-
software-developers-the-longhorn-dream-reborn.ars)

------
gord
Open Source Node.js on Windows using IOCP = great

M$ involved in any way with Joyent and/or Node.js = really bad idea

~~~
veidr
Why the downvotes? Just for the knee-jerk 'M$' maybe?

Node on Windows _is_ great, or at least kinda cool, but the direct involvement
of Microsoft in 'embracing' disruptive upstart technologies has, historically,
been a decidedly not-great thing for said technologies.

Why on earth would one assume things will be different this time around?

