Published 28th November 2019
Continuing in our series of chats on 10 years of Node.js, we’re delighted to hear from Michael Dawson, Node.js Community Lead at IBM. Michael is a passionate member of the Node.js community and an active participant in the wider ecosystem. Here Michael shares his reflections on and aspirations on the most notable milestones and features, highlighting that it’s the agility of Node.js that is driving enterprise adoption and, to support this continued growth, developments in diagnostic and problem investigation features will be key.
Before we delve into your world of software and code, can you tell us a little bit about yourself and your background?
As IBM’s community lead for Node.js I’m an active contributor to the Node.js project and chair of the Node.js Technical Steering Committee(TSC). I joined the project about 5 years ago (after a long stint working on IBMs Java runtime) and contribute to a broad range of community efforts including platform support, build infrastructure, N-API, diagnostics and the package-maintenance effort as a few examples. It’s great to be able to both work in the community and with IBM’s teams in order to ensure an enterprise-ready Node.js runtime from the community and that IBM’s deployment platforms including the IBM public and private cloud offerings are a great place to deploy Node.js applications in production. In my spare time, I like to use Node.js to automate my home and life for fun.
So firstly, can you tell us why is the Node.js community important to you?
Node.js is important both to our customers and our internal development teams. Node.js is the fastest growing and often the first choice runtime for cloud deployments. As more and more businesses move to the cloud it’s important that we be able to support our existing and new customers as they make that move. The Node.js community as a member of the OpenJS Foundation provides a neutral community in which we can actively engage and contribute in areas that are important for the greater good as well as our customers. On a more personal note, I’ve enjoyed my years working with the community, have built good relationships and have a deep respect for all of the collaborators that keep things moving forward. This has made it an important part of my life over recent years.
How long have you been working with Node.js and, in your opinion, what have been the most pivotal milestones in the project?
I’ve been working with the project for roughly the last 5 years. The most pivotal point was when the community came back together under the Node.js Foundation after the fork. Other key aspects were the establishment of the LTS process and some great features like HTTP/2, workers and N-API.
To what do you attribute the sustained growth and usage of Node.js in the ecosystem?
The ease with which you can get started and the ability to quickly deliver an Internet/Cloud Native implementation. Applications need to be delivered quickly and then iterated in order to deliver value to end-users. The speed at which you can do this with Node.js is a key contributor to the growth and usage of Node.js. The supporting ecosystem of packages is also a key pillar in that.
What do you see as the most popular features in the latest release lines of Node.js that will continue to drive further adoption?
Workers, HTTP/2, N-API but I don’t think specific features are really the driver for adoption. I think adoption will continue to grow due to the agility you gain with Node.js. On the other hand, as enterprise adoption grows new diagnostic and problem investigation features will be important. Improvements in performance will also be a motivator to adopt new versions.
Node.js pushes developers to become more efficient in both aspects of development, front-end and back-end, improving productivity for enterprise teams. Are full-stack developers the future?
I think the ability to be able to participate efficiently across the stack is important and one of the benefits that Node.js brings. However, the full stack is a large area to be an expert in, and the required skills can vary significantly. Given that, I think we’ll continue to see people who focus on the front or back end but who can also contribute outside of their core speciality. For smaller deployments, people who can do both well will have a great opportunity to shine.
Generally, overall downloads of all Node.js versions combined has continued to grow – by 40% year-over-year and more than 1 million times each day of 2018. However, the growth in new contributors has slowed somewhat. Is this a cause for concern or just a signal of greater stability in the larger Node ecosystem?
If you look at the rate and pace of PR’s within the community and the amount of work it takes to keep on top of it all, it’s hard to believe there is a slowdown. Despite the slow down in new contributors, it seems like the community continues to be very active and there is a lot going on. We should continue to focus on making it easy for new contributors to join and that they are welcomed when they do – but I don’t think we need to worry too much as it’s likely part of the natural ebb and flow within a project.
Best Feature of the past 10 years?
Workers, N-API, Http/2, Diagnostic Report
Best Reason to adopt in the enterprise?
Velocity and beating your competitors to the punch. A great idea is not enough if your competitors beat you to the market. Node.js allows velocity and speed of iteration that helps you do that.
Most Common pitfalls/programming mistakes to avoid?
Failing to allow for production-level qualities of service upfront. They are often omitted from getting started intro’s and examples and are much harder to retrofit later on. This includes things like logging, internationalization, monitoring, health checks, metrics etc.
Michael recently joined us for his 4th NodeConf EU conference in November. Along with NearForm’s Dominykas Blyze, Michael presented a talk on The Module Ecosystem and spoke about the initiatives to tackle the challenges of module maintenance, ensuring the continued success and sustainability of the ecosystem. You can catch their talk here.
Follow us for more information on this and other topics.
James has 20 years' experience in the software industry and is a well-known figure in the global Node.js community. He has been an author, co-author, contributor, or editor of several internet standards. He is also a core contributor to the Node.js project, is a member of the Node.js Technical Steering Committee (TSC), and has served on the Node.js Foundation Board of Directors as the TSC representative.