The Node Summit, which focuses on Node.js for two days in late January, is packed with attendees, both of the suit-wearing and code-crunching variety. This first-ever conference on Node.js is bringing together these two sides of the Node.js coin for the first time.
Node.js is the combination of a server-side JavaScript container and an event-driven programming model. Developers build small components in JavaScript, then use them together to build services, which can include both client- and server-side JavaScript code. Because it favors JavaScript, Node.js developers have been heavily focused on building everything from scratch: the Web server, message queue, database; everything is being rewritten in JavaScript for Node.js usage.
Typically, most audiences with laptops open during conference talks are just Facebooking, checking work e-mail or IMing their friends. At even the geekiest of conferences, the most complex tasks you’ll see on audience screens is the IRC back-channel. At Node Summit, everyone except for the suits is coding. One attendee explained by asking a question of the initial talks: “Where’s the code?”
But a focus on the emerging market space and the emerging enterprise experiments with Node.js are understandable in a community that’s already been having monthly meet-ups around the world. They’ve had to: Node.js has thus far been all about rewriting the entire server-side of application architecture in JavaScript.
Ryan Dahl initially created the project as a way to bring the event-driven programming model to the Web. His initial forays into the world of server-side JavaScript were bolstered by the release of Google’s V8 JavaScript engine, creating a perfect-storm environment for server-side JavaScript to finally take off.
Enterprises move to adopt
Baz Khuti, CTO and vice president of engineering at Avocent Products and Services (a division of Emerson Network Power), said that he’s pushing Node.js inside his company’s offices around the world. He sees it as the future.
“We have deployed it to our universal management gateway, and we’re globally training our developers on it,” he said. “I just got back from India where I trained 200 developers, and took them through what Node is, what it means. I want our developers imagining what this technology could mean, and spread that word around our 72 divisions at Emerson.”
But Khuti also said that Node.js is still lacking in some areas, mainly the lack of community and enterprise interaction. And this is precisely the topic that Node Summit focused on: bringing enterprises and the Node community together.
“These are huge organizations, with a lot of physical infrastructure out there, so having communities which are focused on machine-to-machine usage of Node.js, and sharing best practices, or building out our libraries that can be reused by developers going forward, in this space, is something which has yet to take off. The community around machine-to-machine industrial automation companies has yet to emerge,” said Khuti.
John McKinley, CTO of News Corp., said that Node is just getting started. “The community thrives when there is a large addressable space of use cases,” he said, intimating that he hoped the community would take more direction queues from the enterprise user base. Indeed, a number of the talks at this summit seemed to be focused on encouraging the Node.js community to address problems inside enterprises.
The Node community is thriving and capable of helping with those enterprise problems, said Chris Allen, CEO of Brass Monkey, a company that builds mobile games with Node.js. Of those enterprise IT challenges, he said, “I think they’re incredibly sexy. You can do so many cool things with [Node.js], people need to come up with these new use cases that will change the world.”
#!
Growing Nodes
Node.js is still growing, but it is this energetic growth that Walmart.com’s Dion Almaer, vice president of mobile architecture, and Ben Galbraith, vice president of mobile engineering, find so appealing about using Node.js in an enterprise.
Said Galbraith of the appeal of Node.js to Walmart: “I think a big part of our success is the talent. At Walmart, we have huge challenges to solve, which is part of the appeal of working here. But we had to have a platform that really energized people and gave us access to some of the best people in the industry. To be able to go out and offer people the opportunity to work in Node at this scale has really been a great ingredient for us to attract top talent.”
Almaer and Galbraith were originally at Palm, where they worked in developer relations. Back in the early days of WebOS, the engineering team decided it would be neat to write some of its server-side code in JavaScript instead of the Java it had been using, said Almaer. The idea eventually manifested in a release of Node.js 0.2 for WebOS.
Said Galbraith of his work with Almaer after they left Palm: “We’d been fascinated for a long time about end-to-end JavaScript. We’d been chasing end-to-end for a long time. We were doing this thing called FunctionSource. We were pursuing an architecture where we could seamlessly mix services. We were wondering how you could have a website that’s rich and dynamic on desktop and mobile devices, but also delivers a rich experience on devices that aren’t very powerful.”
And Node.js has enabled them to build just such an application for Walmart. Using Node.js, they and a team of about two dozen Node.js developers have built an application that allows customers to use the Internet to enhance their shopping experiences at Walmart.
“When we were talking to Walmart (as consultants), we talked to people all the way up to the CEO about how important mobile is,” said Galbraith. “With mobile, customers are bringing the Internet into the store with them. We can finally bridge the gap between online and offline sales.”
Working on the Web
Another company that’s built its product in Node.js is Cloud9. The startup recently opened NodeManual.org, a site filled with information about developing with Node.js. Ruben Daniels, CEO of Cloud9, said that Node.js’ community is quite different from previously influential language-based uprisings.
“The Node.js community is very different from Java,” he said. “Java has these huge libraries and frameworks that you either use or you don’t. Node has taken the Unix or Linux approach of having small modules you can reuse, and these are posted on GitHub. People are mixing and matching these modules, and the popular ones get well maintained. There’s a problem with so many libraries, though: People have duplicated efforts. But they’ve all done it a bit differently, and that has to do with the youth of Node.js.”
Daniels also said that despite the fact that Node.js really brings together three existing disciplines—server-side architecture, event-driven programming and JavaScript—it’s still opening up new territory for developers. “Although event-driven programming has been known for some time, it has never been used at the scale that Node.js allows it, so there are many patterns that need to be rethought,” he said.
dotCloud CEO Solomon Hykes said that JavaScript is not the only language at play here, either. He said that while Node.js’ core is JavaScript, there are modules being written in Python, Ruby and other languages.
Hykes said that, while Node.js may appear to be all about JavaScript everywhere, he doesn’t believe that will be the future of the movement. “The way Node is evolving is a nice metaphor for the way software in general is going. I wouldn’t say every application is going to be written in Node. I would say the Node philosophy is the opposite of that. It’s a bunch of small components that each do one thing. It’s very modular, almost to the extreme,” he said.
“If you look at a lot of the adoption patterns of Node, sometimes you write an entire application from scratch, but the overwhelming majority is Node used as part of something bigger, where there will be parts written in other languages. What I don’t believe is that everything is JavaScript.”
No matter what languages and services are used alongside it, Node.js is undeniably emerging as a hot new ecosystem for systems engineers. Said Daniels, “For us, there’s definitely a market. We’re targeting Node.js developers, and we care mostly about developers using our tool, not about them paying us money at all. We want to build the best tool, and we feel if we get enough eyeballs the business model will come later. Looking at the growth and what we expect from Node.js, I think Node.js will be bigger than Ruby on Rails. The Node.js community will probably will reach the size of the PHP community, or larger.”