Development

A Reunited Node.js Guns for the Enterprise

8 Dec 2015 9:07am, by

With the first long-term release (LTS) under its belt and the IO.js fork back in the fold, Node.js is being prepared to offer enterprises a nimbler, lower cost alternative to traditional app development stacks such as Java Enterprise Edition (JEE).

This week in Portland Oregon, the Linux Foundation’s Node.js Interactive conference will explore the growing use of Node.js, not only in the enterprise but also for the emerging Internet of Things (IoT) and other applications.

“Node is pretty flexible,” said Scott Hammond, CEO of Joyent, an infrastructure cloud provider that helped build Node. Node may be primarily used to power Web apps these days, but it could also be used for mobile applications and infrastructure support, which is how it is used by Joyent. It can add a modern front end for a legacy application or as an API framework for connecting multiple systems.

Ryan Dahl had created Node in 2009, a server-side JavaScript engine, as a way to easily enable non-blocking I/O operations in a Web browser, something that up until the late part of the last decade was surprisingly difficult to implement.

“The way we are thinking about doing I/O really makes things difficult,” said Dahl in the initial presentation of Node. “Writing servers or any sort of applications is difficult because of how we’re doing I/O.” He used the Google V8 JavaScript engine as the base.

He was rapidly proven correct. Since then, the software has quickly found a home at some of the largest web-scale companies, including PayPal, Walmart, Netflix and others.

Fork in the Road

In a way, Node almost became a victim of its own success.

Cloud infrastructure provider Joyent-sponsored Node in no small part because the software provided an effective base for coordinating the operation of its cloud services. The support allowed Dahl to continue to develop the technology under what was more or less a benevolent dictator model, similar to how Linus Torvalds oversees Linux. “When a project is small, you want to have a singularity of vision, and tight control of what gets added in and when,” Hammond said.

This model worked well initially, though by early 2014, the sheer number of active users overwhelmed this governance structure. Version 0.12 was in development for two whole years, as a whole slew of submitted code changes from outsiders piled up, awaiting incorporation.

Who was deploying Node was becoming more diverse as well, said Dan Shaw, chief technology officer of NodeSource. Node was being used not only for infrastructure projects but mobile and Web front-end jobs as well. Such front-end work tends to be more fluid, and the developers that did this work could be viewed as more creative, compared to the operations folks, and so they brought their own preferences for what they wanted to see in Node.

By early 2014, the Node user and contributor base was an amalgamation of both communities. “There were a lot of different needs and a lot different agendas off the core contributors,” Hammond said. “When you have big growth like that, it becomes hard to manage. It transcended the single voice.”

Last year, a group of users, so frustrated at the slow pace of Node, forked the project into IO.js, an effort that stole considerable development mindshare from Node itself. IO.js have all the things that Node lacked, most notably a faster release schedule, with more contributions from outsiders. The forking caused many organizations that were evaluating Node to hold off for a bit, Shaw said. “We didn’t see any large-scale abandonment, but there was uncertainty,” Shaw said. 

Hammond, newly installed as CEO, got the message, He quickly created The Node Foundation in February, which sought to make input into Node more even-handed.  The governance was shifted more of a consensus-driven model, with an independent technical committee that drives roadmap and technical decisions.

The move worked, and IO.js leaders decided to return the project to Node. The technical community sent the message to users that “we want you to be part of this,” Shaw said. “That explicit act of inviting others to participate has radically changed the direction of the project.”

Node was updated with the IO.js repository. The first LTS release of the software, Node 4.2, aimed at providing a stable code base for production use, was issued in October.

To have an open source project split and then reunite is a pretty rare occurrence in the world of open source, Shaw itself. That Node did so and continues to thrive only shows the tenacity and great utility of the technology.

Enterprise Adoption

Currently, Node.js is downloaded about 2 million times a month, according to the Node.js Foundation.

Since the Foundation was formed, the community has grown from 8 to more than 400 contributors. Each month, as many as 63 percent of contributions come from first-time committers.

One company experiencing the growth of Node has been Waterford, Ireland-based consulting firm nearForm, which touts itself as the largest Node-dedicated consulting practice. It has grown more than 600 percent in two years. The firm now has about 100 clients, including a fair number of large, publicly-held companies.

In an informal poll of its user base, nearForm has found 33 percent of developers at health care startups are using Node in a significant way. Moreover, 48 percent of IoT developers and 80 percent of education startups are using the technology as well. Over 16 percent of media companies are working on Node full-time.

Many traditional companies are jumping into Node as a way to keep pace with the newer “valley tech” companies, said Cian O’Maidin, nearForm CEO. PayPal deployed the technology to replace its Java and C++ code in part to lure savvier developers, as well to keep up with the look and feel of younger upstarts. Media giants such as Condé Nast and the Mail Online use the technology. Netflix currently uses Node to run all the user interfaces for all the devices it supports.

Perhaps one reason for Node’s popularity is that many programmers are familiar with the JavaScript language. JavaScript allows the enterprise to bring in “a much larger group of software developers,” Hammond said. Java to do both front-end user interface and back-end server-side work in the same language.

Node deployments almost always start small, Shaw said. A simple project can be based on Node, which takes a few seconds to start up. PayPal, for instance, started using Node for its log-in service. A service can be created stand-alone but can communicate with other parts of the applications. This provides a way to “break down these heavy monolithic applications,” Shaw said.

“It gives you an incremental way to break down these heavy monolithic systems. If you tried to replace everything, you’d flip the switch and pray everything works well. It is far easier to take an existing that works and replace something it with something better” piece-by-piece, Shaw said.

Joyent is a sponsor of The New Stack.

Feature Image: NASA Lewis Research Center solar mirror.

A newsletter digest of the week’s most important stories & analyses.