News

Open Source Node.js Matures, Courts the Enterprise

The six-year-old Node.js JavaScript runtime is maturing. Internal project squabbling has decreased, open source forks have reconverged, and now a brand-new support plan designed to accommodate enterprise development has been introduced.

Yesterday the Node.js. Foundation announced Node.js v4.2.0, dubbed "Argon" in a new naming scheme as part of the first release covered under the Long Term Support (LTS) plan.

"The point of establishing an LTS plan for Node is to build on top of an existing stable release cycle by delivering new versions on a predictable schedule that have a clearly defined extended support lifecycle," Rod Vagg explained in a July blog post. "While this may seem at odds with the open source tradition of 'release early, release often' it is an essential requirement for enterprise application development and operations teams." Vagg is a developer active in the LTS project, with a day job at NodeSource, one of the companies that provides support to users of Node.js.

In announcing the first LTS version yesterday, the Node.js Foundation said: "As an LTS release, support for v4.x will continue for a period of 30 months from today. This means that individuals and businesses building on Node.js will have a stable and supported platform on which to grow."

XXX
[Click on image for larger view.] The Node.js Long Term Support Plan Schedule (source: NodeSource)

The technology itself has grown since being invented by Joyent Inc. programmers led by Ryan Dahl in 2009. Joyent served as the commercial sponsor of the technology, but in a dispute about project governance, a fork of the project -- called io.js -- was formed in December 2014. The opposing sides settled their differences -- with governance moving to the Node.js Foundation, a collaborative project under The Linux Foundation -- and last month Node v4.0.0 was released, combining into a single codebase the Node.js and io.js projects.

Now the LTS plan has been added to make the technology more attractive for enterprises, which can now count on major LTS versions to come out every 12 months, with 18 months of official support for each one (with 12 more months of maintenance support). Incremental releases -- mostly for bug fixes and security tweaks -- will continue as needed.

"Considering the major milestones for Node.js -- large-scale production deployments, the fastest growing applications platform, the world's largest package ecosystem -- a predictable release and support mechanism for the enterprise is an essential step," Vagg said.

Node.js, which has grown in popularity and use cases -- even being aimed at cross-platform desktop development -- is known for its model allowing concurrent connections without the use of multiple threads, reducing the complexity of concurrent programming for non-experts. "Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine," the project's site states. "Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. Node.js' package ecosystem, npm, is the largest ecosystem of open source libraries in the world."

The approach "is in contrast to today's more common concurrency model where OS threads are employed," the site states. "Thread-based networking is relatively inefficient and very difficult to use. Furthermore, users of Node are free from worries of dead-locking the process -- there are no locks. Almost no function in Node directly performs I/O, so the process never blocks. Because nothing blocks, less-than-expert programmers are able to develop scalable systems."

The foundation claims Node.js is downloaded more than 2 million times each month by developers in tens of thousands of organizations in more than 200 countries. The technical steering committee overseeing the project now has 15 members with more than 40 core committers, with more than 350 GitHub organization members supplying community contributions.

About the Author

David Ramel is an editor and writer for Converge360.