The Node.js Community continues to grow rapidly. The most common use case for Node.js is certainly back-end development, but there are many examples of cross-platform and desktop apps, even IoT and security apps.
According to Mark Hinkle’s Node.js State of the Union 2017 post (Oct 2017), “Every day there are more than 8.8 million Node instances online, that number has grown by 800,000 in the last nine months alone. Every week there are more than 3 billion downloads of npm packages. The number of Node.js contributors has grown from 1,100 contributors last year to more than 1,500 contributors today. To date, there have been a total of 444 releases, and we have 39,672 stars on GitHub.”
The Index SF (Feb 20-22, 2018) Community Day will include Node.js community discussions covering an introduction to Node.js initiatives, working groups and teams, and how to get involved, an end user feedback session, and a community values working session. We reached out to Michael Dawson, IBM Node.js Community Lead at IBM, to dig into some of the latest activities around Node.js, and find out why it might be useful to attend the Community Day Node.js session.
1) There's a lot of buzz around N-API. Who do you think benefits from this the most?
The core community, module maintainers, and end users will all benefit from N-API. As a community, we want end users to upgrade to recent LTS versions because that ensures they take advantage of performance improvements, have the latest features, and are using a version that we can support/update if they have problems. The advantage of having a large ecosystem of modules that can be re-used can have the disadvantage of making migration more difficult in some cases. In particular, it has been reported that the difficulty in upgrading native addon modules is often one of the roadblocks to upgrading to a newer version of Node.js. With N-API, modules don't need to be updated or re-compiled for newer versions of Node.js, and this will help end users keep up to date.
For native addon module maintainers who ship binaries, instead of requiring compilation at installation time, N-API will reduce the number of different binaries that they need to build/store/deliver (without N-API, they need a new binary for every Node.js major version). In addition, without N-API, they may also need to update their code when adding support for a new Node.js version. If they use only the functions in N-API as opposed to using V8 APIs directly, this will no longer be the case. The end result is that N-API should reduce the overall workload on maintainers.
2) You have a lot of experience with the Node.js benchmarking workgroup, which focuses on key use cases and important benchmarks. Are there any trends that you've noticed over the last few years driven by changes to how Node is used?
Performance of the Node.js runtime is important to customers so that they maximize their investment in hardware. One of the key things I've noticed is that Node.js is used in a wide variety of use cases. Because of that, it is important to consider many different aspects of performance when benchmarking. For some use cases, fast startup and low footprint are a key aspect of Node.js. For other uses cases, the ability to support a large number of concurrent connections is key. The Node.js benchmarking WG is working to put in place benchmarks that cover all of the different uses cases. For example, a new benchmark to cover the performance of Node.js when it's used in web tooling was just added to benchmarking.nodejs.org. The other trend I've noticed is a level of interest and adoption of new language features like promises. Therefore, it is important that we work to understand/track the level of performance of these features in Node.js
3) There is a Node.js Community day at Index SF. Do you have any advice on how a large enterprise developer from a Java community background could start to get involved with the Node.js community
Taking part in the Node.js community day session is a good way to learn about how the community works, what the community is working on, and how to get involved. The agenda is still being finalized, but there are 2 proposed agenda items that would be of particular interest to developers from large enterprises.
The first one is an overview of the Node.js Strategic initiatives, working groups, and teams and how to get involved with the work of these groups. This is a great way for someone who is not familiar with Node.js and the community to ramp up and figure out where your interests line up with what's important to the community. It is also a great opportunity to meet some of the people from the community and talk to them about how to get involved. You can follow the discussion on the agenda here.
The second is a working session to get feedback from end users. If your organization has tried to use Node.js but has run into challenges in moving from a Java-based environment to Node.js, this is a good opportunity to share and discuss those challenges in a way that will help us understand and use your experience to help maintain the rapid growth of Node.js in the future. On the other hand, if you have successfully migrated some of your applications to Node.js it would be good to share what you consider were the key organizational and technical enablers.
For more information on the Community Day at Index SF, see here.