This year we are celebrating the 10th year of Node.js which now ranks as the fourth most important open source project, according to the Battery Ventures Open Source Software Index. To mark the anniversary, we’re reflecting on how far it has come, explore the latest in Node.js developments and showcase its broader importance and impact on the economy. In our previous interview, we spoke with Gireesh Punathil of IBM which you can read here.
In this post we speak with Gabriel Schulhof, a software engineer at Intel Corporation to hear his views on the importance of the community and its continuity and in finding the future collaborators to progress node.js to other computing environments.
Before we delve into your world of software and code, can you tell us a little bit about yourself and your background?
I am a software engineer at Intel Corporation, a member of the Node.js N-API Working Group, and of the TSC. I previously worked at Nokia developing Linux-based smartphones. I have been involved with Open Source projects for the past 16 years. At Nokia, I worked on start-up applications and their native frameworks. At Intel, I worked on jQuery Mobile and Node.js.
Why is the Node.js community important to you / your company?
Node.js has been one of the major driving force behind the current server-side computing landscape in major part due to the speed and ease with which it allows the development of production-quality applications. Where is the project going? What else can we accomplish with Node.js? To what other computing environments can we show that Node.js is well-suited? My curiosity about the answers to these questions keeps me involved with the project. These interests align well with those of my employer, who seeks to ensure that the applications so creatively constructed by the community will perform splendidly on the hardware we provide and that we can continue to provide hardware for the community, whichever direction the project chooses to take.
How long have you been working with Node.js and, in your opinion, what have been the most pivotal milestones in the project?
I have worked with Node.js for the past 5 years, becoming more and more deeply involved with the project in the process. Notable milestone from my perspective include the addition of N-API and of worker threads. Nonetheless, I would also like to emphasize that, from my perspective, the project has seen remarkable continuity. I believe that the steady stream of releases, the steady progression of major releases, and the steadfast community support for transitioning from one major release to the next has been a major strength of the project.
Do you think there is some nostalgia in the community at large that will keep Node.js popular or do you see new generations of developers embracing it?
We have examples of environments which are far older than Node.js and are still as relevant today as they were 20 years ago. Consider POSIX or Win32. At least two generations of developers have grown up around these two. Popularity in this sense stems from continued suitability, reliability, and performance. Node.js will remain popular with whichever generation is “at the helm” as long as it is able to remain the go-to toolkit for the majority of emerging applications.
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?
I do not believe it is a cause for concern. New collaborators emerge naturally as the user community pushes the boundaries of Node.js’ applicability. As existing collaborators, our responsibility is to recognize those who would be collaborators and to support them on their journey.
Best feature of the past 10 years?
Best reason to adopt in the enterprise?
Most common pitfalls/programming mistakes to avoid?
Do not assume a property of an object is present 🙂
Best Node.js Performance tricks?
Use ArrayBuffers to communicate with native addons.
Thanks so much for your time Gabriel!