Home Live Blog: NodeConf Keynote by Node.js Creator Ryan Dahl

Live Blog: NodeConf Keynote by Node.js Creator Ryan Dahl

I’m at the very first NodeConf today. It’s an impressive turnout for a first time event for a new project that hasn’t even hit a 1.0 release yet.

Ryan Dahl, the creator of Node.js, is the keynote speaker. Here’s what he has to say about where the project is going, including why and how Node.js is coming to Windows.

Tom Hughes-Croucher introduces Ryan Dahl, calls him a benevolent dictator.

Dahl is talking about the changes made in Node.js thus far. May 2009 was the initial release, 0.4 was released in February of this year, with an emphasis on getting SSL to work properly.

.5 is the next release, and Windows capability is the major goal.

Windows is the most popular OS in the world, so they want to run on it.

You can run Node.js on Cygwin, but it’s suboptimal.

Is it possible to do decent servers in Windows? Yes, but not with a direct native port.

Good server on Unix means:

-set sockets non-binding

-[I missed the second bullet point]

Windows has select() and non-blocking sockets but select() is not constant-time. It becomes noticeably slow with more than 100 sockets.

Windows has WSAEventsSelect() but it must be used with WSAWaitForMultipleEvents() which is limited to 64 sockets per thread.

It’s possible to do really good server on Windows using I/O completion ports. In Unix you wait for file descriptor changes to do non-blocking I/O

In windows, you cal asynchronous functions on sockets and get notified of completion.

IOCP supports sockets, pipes and regular files. In other words, Windows has true asynchronous capabilities.

Dahl says Node’s API can be refactored to support Windows with minimal API disturbance.

What’s required is an abstraction layer over the Unix and Windows styles of I/O. There have been several attempts (libev, libevent, boost ASIO) but none are acceptable.

The Node team built its own abstraction layer called libio.

The TCP socket/server is working cross platform now.

Avoiding #ifdef hell: push all platform incompatibilities to the liboio layer. the v8 layer and pure javascript parts of node will be platform independent.

It will be easy to install – a Node install can be a single executable, like Putty.

Binary installers are preferable to both Windows users and some Linux users.

“If we can’t get at least gigabit throughput from a TCP pair over loopback on every OS, we’ve failed.”

Q: “Are there any big things that you have to give up to do Windows?”

A: “No. The big thing we had to do is move the lib.js to C-land.”

Q: “Have you thought much about what comes after Windows compatibility?”

A: “There’s a lot of clean-up stuff that has to happen, but we’re quickly approaching a stable version.”

Q: “How can we best prepare to have our scripts used on Windows?”

A: “Don’t worry about it. We will make every effort to make every piece of core API work on all platforms in the best possible way. Just hold off.”

Q: “What’s the next big thing after Windows?”

A: “We need some system for linking nodes togethr and opening channels between them.”

Q: “What are the biggest problems people have with Node?”

A: 1) The programming style is difficult for people until they get used to it. 2) It’s a single threaded thing.

Update: You can find Dahl’s slides here (PDF).

About ReadWrite’s Editorial Process

The ReadWrite Editorial policy involves closely monitoring the tech industry for major developments, new product launches, AI breakthroughs, video game releases and other newsworthy events. Editors assign relevant stories to staff writers or freelance contributors with expertise in each particular topic area. Before publication, articles go through a rigorous round of editing for accuracy, clarity, and to ensure adherence to ReadWrite's style guidelines.

Get the biggest tech headlines of the day delivered to your inbox

    By signing up, you agree to our Terms and Privacy Policy. Unsubscribe anytime.

    Tech News

    Explore the latest in tech with our Tech News. We cut through the noise for concise, relevant updates, keeping you informed about the rapidly evolving tech landscape with curated content that separates signal from noise.

    In-Depth Tech Stories

    Explore tech impact in In-Depth Stories. Narrative data journalism offers comprehensive analyses, revealing stories behind data. Understand industry trends for a deeper perspective on tech's intricate relationships with society.

    Expert Reviews

    Empower decisions with Expert Reviews, merging industry expertise and insightful analysis. Delve into tech intricacies, get the best deals, and stay ahead with our trustworthy guide to navigating the ever-changing tech market.