Node.js inventor extends JavaScript programming beyond browsers

Interview: Ryan Dahl discusses why his invention is catching fire with developers

The open source project Node.js was invented by Joyent software engineer Ryan Dahl three years ago next month. It essentially allows JavaScript to be used outside of a browser. Node leverages Google's V8 JavaScript virtual machine to interpret JavaScript, and it uses an event-driven non-blocking I/O model that cloud services vendor Joyent -- a principal Node advocate -- says makes it ideal for data-intensive and real-time applications running across distributed devices. It is also championed by companies such as Microsoft and Mozilla.

InfoWorld Editor at Large Paul Krill spoke with Dahl at the Joyent-sponsored Node Summit conference, which is being held in San Francisco.

[ Node.js is an InfoWorld 2012 Technology of the Year Award Winner. For more insight on software development, subscribe to InfoWorld's Developer World newsletter. ]

InfoWorld: Node is basically server-side JavaScript framework, right?

Dahl: Yes. It's a programming platform. Node is a way of doing programming with JavaScript, but on your computer instead of inside the Web browser so you can interact with the operating system and whatnot.

InfoWorld: What's the main benefit?

Dahl: Node does things a bit differently than other programming platforms. The main thing is that it handles I/O very differently, so it doesn't allow the user to lock up the program, ever. It keeps the user handling new things, so it's very useful for network programming. You often are dealing with many people at the same time on your server and you're juggling these different connections. Node encourages the developer to continue to process connections without blocking. And because of this model of handling I/O, users tend to find it easier than developing with a traditional programming language for servers.

InfoWorld: Why is Node catching fire, so to speak? 

Dahl: It just turns out that a lot of people like to program in JavaScript, and so there's been a lot of interest from users to develop stuff.

InfoWorld: Is there an issue with running Node on Windows?

Dahl: Well, the port to Windows is a lot newer than the Unix implementation and does have a couple of bugs. But generally users are using it fine. It tends to be working well. Of course, it'll get better over time.

InfoWorld: Are there any particular advantages of Node as far as platform-as-a-service cloud computing and cloud computing in general?

Dahl: Well, it's JavaScript, which is a nice thing. And it has this nice little API that is somewhat compact. So I think it makes for a nice platform-as-a-service platform in general. It also does network communication.

InfoWorld: How many people are developing with Node? What's the growth rate for Node?

Dahl: It's a bit difficult to quantify, though the way that we usually measure this is by the number of modules that have been deployed with Node or developed with Node. We're currently at about 6,000 modules. These are various modules to connect to Twitter or to parse some random disk format, [for example].

InfoWorld: What would be the ideal situation for Node and where would you not want to use it?

Dahl: Ideally, it's for servers where you're juggling many connections, with a lot of I/O happening in the server.  It's not so good for batch jobs where you're doing a bunch of serial tasks and it doesn't really matter how long they take, you're just running them at the end of the day.  There it becomes unwieldy due to the non-blocking nature of it.

This article, "Node.js inventor extends JavaScript programming beyond browsers," was originally published at InfoWorld.com. Follow the latest developments in business technology news and get a digest of the key stories each day in the InfoWorld Daily newsletter. For the latest developments in business technology news, follow InfoWorld.com on Twitter.

Copyright © 2012 IDG Communications, Inc.

InfoWorld Technology of the Year Awards 2023. Now open for entries!