There is more to Node.js than buzz

Judging by the attendance and conversation at this week’s Node Summit in San Francisco, the relatively new open-source programming language Node.js is catching on among developers and notably among enterprise developers.
Several hundred people showed up at the event, most of them developers from startups around Silicon Valley as well as business and architect leads from Microsoft, eBay, Wal-Mart, Sprint, Google, Rackspace, VMware and the usual VC crowd. Everyone onstage had enormous enthusiasm for Node and their increasing use of the technology.
The summit was organized by Joyent, the company that invented Node.js and is shepherding the open-source community around it. Joyent’s SmartOS and SmartDataCenter products run on Node.js and are the backbone of its public cloud, JoyentCloud. Joyent also licenses the software to service providers to run their own public clouds.
Node is a server-side JavaScript programming language for receiving and responding to HTTP requests. Its stated goal is “to provide an easy way to build scalable network programs.” And its claim to fame is that it can handle tens of thousands of concurrent connections, so it is ideal for web applications that supports thousands of users.
Think of an application like Twitter, which is a great use case for Node. Twitter has to receive tweets and write them to a database. With literally thousands of tweets arriving every second, the database can’t keep up with the number of writes required during peak usage times. Node is helpful here because it can handle tens of thousands of incoming tweets. It can quickly write them to an in-memory queuing mechanism (memcached, for example), from which another separate process can write them to the database. Node’s role in this is to quickly gather the tweet and pass this information off to another process responsible for writing it.
LinkedIn built its entire mobile software stack in Node. One reason was scale, according to Kiran Prasad, the director of engineering for mobile at LinkedIn. The second was huge performance gains, he said. EBay also recently announced its use of Node to help reduce the company’s code footprint in certain parts of its architecture.
As of Dec. 2011, Node.js surpassed Ruby on Rails to become the most popular repository on the GitHub site, with 11,460 watchers compared with 11,274 for Ruby on Rails.
Despite the hype, Node is not for everything. “It’s just another language, there are things it’s great at and things it’s not so great at it,” said James Urquhart, the VP of product strategy at Enstratus. He advised developers interested in the technology to take some time to figure out what it is good for before diving in. Experts say Node will not replace Ruby on Rails or PHP or any other language for building web applications. That’s not what it is for. It is an additional language to use when you are building specific components of web applications that require a persistent connection from the browser back to the server. Keep the Twitter example in mind.
The most interesting thing to me about Node is Joyent’s decision to keep it open and cross platform. Microsoft, for example, is porting Node to Windows Azure so that its developer base can use it. And with 40 percent of the developer market working on Windows, it is a smart way to ensure the technology reaches the mainstream. Amazon Web Services, take note!

Question of the week

What’s all the fuss about Node.js?