There are few tools that can even match the overwhelming enthusiasm for Node.js. It’s a safe foundation for so many services from so many industries: including the traditional bastions of Java and C#, such as fintech or banking.
It's great to see that the team removed type coercion in some functions – it will make development easier for sure.
Unfortunately, regardless of whether new releases are out there, some cloud providers lag behind others. AWS is one example, supporting only Node 14, when we have Node 18. The decision to start supporting versions 16+ would be a great one.
Let’s dig in!
Going back to the most notable features of the newest version of Node.js:
The newly introduced function is, to simplify it, heavily based on undici, a piece of code written especially to fill the fetch-shaped gap in Node.js. The major con that the majority of developers and tech managers will want to know about is that the implementation is notoriously slow. It’s more than a hundred times slower than its younger sibling Deno’s implementation.
Testing is elementary for creating quality products. Until now, we did not have a built-in test runner for Node. That is changing, with the team introducing a test runner available out of the box.
Whether this is as a response to some voices in the community saying Node.js does not provide much out of the box or not, it’s absolutely something that new teams will appreciate. The older teams probably already have a testing framework in place.
The new tool should feel familiar to many Node.js & front-end developers alike. An example test looks like this:
Node.js users are particularly happy about that (or could be), since they are getting performance improvements to their apps for free. You are not changing a thing about your app, and yet it will run faster and provide developers with more options, assuming your app is compatible. Speaking of compatibility…
As with each major upgrade, also this time there are some changes that will force you to change your app a bit. This time there are also little changes like that. Two of them pertain to the availability.
To be more precise, Node.js is now “experimental” on the 32-bit Windows platform, and the minimum required version of macOS is now 10.15. If you are one of the people who started looking up “macOS 10.14 Node 18 not working” or “32-bit Windows Node 18 download” in a disarray, then there is no other option than to change your operating system. The case is similar for some Linux distributions. If you are an Ubuntu, Debian, or Red Hat Enterprise Linux user, then you need to upgrade to versions 20.04, 10, and 8 respectively as well. Progress brings changes we do not wish for, occasionally, but the ones that we need to get through.
To end this section, there are additional modifications that may break your apps, that we did not cover. We did it so that we don’t write an entire e-book worth of content every time a popular tool has a new release.
Crucially, Node.js 18 will gain the Long-Term-Support (LTS) status later this year (2022). The development team of the popular tool will support it until 2025. Should you migrate onto version 18 now, you will have three years of peace of mind. In case your app is too big to easily migrate, and you need help, or if you are building web apps with Node.js in mind, don’t hesitate to get in touch.