Learn Why Node.js is an Open Source Juggernaut
|Richard Harris in Open Source Saturday, February 20, 2016|
The Node.js Foundation was created last year to support the open source community involved with Node.js, which offers an asynchronous event driven framework designed to build scalable network applications.
The Node.js Foundation is a collaborative project of the Linux Foundation, which hosts collaborative software projects and provide the organizational, promotional and technical infrastructure needed to make the projects successful.
We visited with Mikeal to learn more about the current and future prospects for Node.js.
ADM: Last year you formed the Node.js Foundation. Why did you end up forming the Foundation and what did you accomplish in that time period?
Rogers: Node.js is growing tremendously and is now at more than 3 million active users. It has become the de facto language for IoT projects, more enterprises are using it in their stack, and it is very popular with frontend and backend development. Due to this growth and the diverse use cases, we felt that a foundation and an open governance model was the best path to take to advance the entire ecosystem and community around Node as quickly as possible.
A lot has happened since the Foundation came together in early 2015. We formed a Board of Directors, which consists of both leaders from Node.js membership companies as well as individual members of the Node.js community. There is a technical steering committee that directs the technology needs for the project. We set up a long-term support plan that will help continue to make sure the code is stable and the release cycles are consistent. AND, we were able to unite the io.js and node.js communities, which led us to release v4 (our Long Term Support release).
Node.js has created a huge ecosystem, so with input from the community, the Board made the decision to incubate smaller projects that might need more support and mentorship. Our first incubation project was Libuv, a software library that provides asynchronous event notification and improves the Node.js programming experience.
We’ve also seen a major uptick in contributors. We are now at more than 400 active contributors, with an extremely high rate of first-time contributors working on everything from our website to build infrastructure. We’ve also established an inclusivity group, and are actively working to make contributing to Node.js as inclusive as possible.
ADM: What are some of your larger plans in 2016 for the Foundation?
Rogers: Education is really important to us. Both of our new individual board members were very vocal about this and see this as a huge need within our community. To help with this, we have established Node.js Live, a conference series that brings Node.js to cities outside your typical tech hot spots. We see this as an opportunity for members to share their own experiences and educate others.
Another effort of ours is to support community events around learning as well as diversity. We also continue to look at more projects that we might want to fold under the Node.js umbrella and incubate through through the Node.js Foundation.
ADM: Tell us a little bit more about your release cycles and how they impact Node.js developers?
Rogers: This blog post provides a very good narrative of this. But, essentially we have two release lines: Long Term Support release and v5. The Long Term Support line (which are even number release numbers, like v4) is focused on stability and security. This release line is for complex environments that find it cumbersome to continually upgrade, and is best suited for those that are in enterprise (big or medium) or have complex environments that they don’t to continually upgrade. If they have not done so already, most Node.js users should migrate to v4.
v5 is the main focus of active development, adding necessary features and refining existing APIs, it receives much more frequent updates than LTS release lines. v5 and all of its proceeding releases will have an odd number associated with its release line and a support lifespan of 8 months.
We have several other release lines v10, v12, but by the end of this year, we will no longer be supporting these release lines and are working with our community to get them off these older versions and onto the Long Term Support and v5 release lines.
ADM: How big is Node.js as a community now? What's the growth rate look like?
ADM: You’ve had a huge growth in people contributing to Node.js Core? Why is that?
Rogers: We are really focused on liberalizing contributions and participatory governance (or direct ownership to the people who are contributing. We see this as a new approach for open source development and have had a lot of great success in this department thus far with many pull requests coming from new committers.
If you want to join the project, there is a 20-minute onboarding process and then you opt into what the project needs at the time, whether it’s frontend development, IoT or keeping the website running. This encourages really organic community development. Many other open source projects have taken an interest in this same philosophy toward contributions and maintenance.
ADM: Is there a certain segment of developers that Node.js usually attracts and/or where is the development of the technology growing?
Rogers: We’re seeing a higher rate of growth in IoT and Enterprise than any other platform. We also continue to be a good platform for people new to programming and now that all modern front-end tools are written in Node.js we’re part of the way people learn how to do almost any web programming.
ADM: Why do you think Node.js is becoming so pervasive in mobile and IoT and where do you see it going in the future?
Rogers: At the beginning of Node.js, it was really built to scale and be able to handle data-intensive environments while still being highly performant. This is why it is often used within media companies, on demand services (like Uber), financial institutions and retail. This type of environment is also typical of IoT, which has small bursts of data sets from devices and sensors.
Even in the early days of Node.js we had a strong focus on efficiency and resource utilization because a single process had to handle so many connections. This made us a good fit for micro-services when they began to rise and now it’s also paying off in IoT. The evented model of programming is also a good fit for IoT which is mostly about reacting to things that happen in the real world and we have a huge ecosystem (230K+ modules) written to work well with evented programming.
ADM: Where would you say Node.js is at on a maturity standpoint?
Rogers: From a technology standpoint, Node.js is incredibly mature. We have a lot of experience pushing it to the limits of various production use cases. We also have a very responsible release cadence with Long Term Support.
ADM: Why do you think Node.js has become more performant than some of the other older languages out there?
Rogers: Even before Node.js existed, JS VMs were faster than most other VMs in terms of performance due to intense competition between browser vendors. Our community has been able to entirely focus on platform performance above the language and VM layer because we’re building on such a great VM community already. So the API provided by Node.js has been iterating on performance and debuggability since the beginning in Streams, Binary Handling, and crypto.
Read more: https://nodejs.org/en/