Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

node.js on Windows. When and why?

Tags:

node.js

Note: There is a similar question called 'installing nodejs on windows machine'. And various answers explaining how by installing cygwin you can get it working there.

now, I don't want to install cygwin. I just wish I could run nodejs on a windows box.

I want a "nodejs.exe" to kick off.

Can somebody explain to me

1) why nodejs has not been ported on windows - what are the technical reasons for not providing an exe ?

2) are there any plans to have nodejs on windows ?

I really would like to use it but I can't accept that I have to accept cygwin. That's just not right.

like image 992
chacko Avatar asked May 19 '11 15:05

chacko


People also ask

Is Node JS good on Windows?

Using Node. js directly on Windows is great for learning and experimenting with what you can do. Once you are ready to build production-ready web apps, which are typically deployed to a Linux-based server, we recommend using Windows Subsystem for Linux version 2 (WSL 2) for developing Node. js web apps.

What is Node JS for Windows?

Node.js is a run-time environment which includes everything you need to execute a program written in JavaScript. It's used for running scripts on the server to render content before it is delivered to a web browser.

What is node JS and why is it on my computer?

Node. js is a platform built on Chrome's JavaScript runtime for easily building fast and scalable network applications. Node. js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.

When should Nodejs be used?

Node. js is perfectly suited for this task with built-in modules supporting data streaming and allowing to create both readable and writable data streams. If we add that Netflix, a global media service provider, uses Node. js, you may get the idea of how powerful this environment is.


2 Answers

Update:

For optimum node on windows development I recommend you use the Windows Azure powershell for node.js. It's a powershell optimised for using node, npm and the azure APIs. (the azure apis are optional. I would still use this powershell if I didn't use azure).

When : v0.6

Currently you can get a binary file that (kind of) works under windows. Go ask on the node.js IRC channel. They'll hook you up.

Basically if you read up on node.js road plans you will find that proper windows support is planned for 0.6, we are currently on v0.4.7 and the v0.5.x beta is in full storm.

I won't give an ETA but it's soon.

IRC can be found at the Community links

PDF showing v0.6 road plan

July 2011 update:

#nodejs v0.5.1 is the first to ship with an official Windows executable. We're hoping to get some good feedback.

Microsoft has officially gotten involved with joyent in making node.js run natively on windows.

like image 77
Raynos Avatar answered Oct 24 '22 15:10

Raynos


Running Node under Windows presents several technical problems, mostly related to how Windows' internal design differs from that of Linux and the "change in mindset" required to port Unix applications to Windows.

Background

Linux was designed to be a replacement for Unix, a well-known multitasking operating system, so from day one it has been a multi-user/multi-process, server-oriented operating system. The idea of multiple processes sharing system resources is key to its internal design.

Windows was initially designed as a single-user/single-process desktop operating system and so did not support shared access to system resources. In 1993 Microsoft released a newly redesigned version of Windows--called Windows/NT--to better support the shared resource, multitasking model required by servers, but due to its existing installed base of users, Microsoft required NT to also support all the features of its single-user/single-tasking forebearer.

Windows 7 is a direct descendant of NT and Microsoft's need to support legacy users continues to this day (and in the opinion of many, has severely muddled Windows' internal design.)

Further, Microsoft hired a systems architect named Dave Cutler to design NT. Dave is best known for designing a competitor to Unix called VMS, the internal design of which differs significantly from that of Linux, which has caused a lot of problems for developers interested in porting their Unix programs to Windows.

The clearest example of this "impedance mismatch" between the internal design of Windows and Linux is how they handle event-driven, non-blocking input/output (io) on which Node relies to perform its (apparent) multitasking magic in a single thread of operation.

Linux supports two system-level functions called select() and epoll() which can be used to asynchronously inform a process of changes within the operating system that affect it. Node relies heavily on these functions but Windows doesn't support either, relying instead on "Change Notifications" (mostly) to handle event-driven io.

like image 21
Rob Raisch Avatar answered Oct 24 '22 14:10

Rob Raisch