Node.js 9 Now Available to Experiment With: Top Features and Fixes to Test Out

Guess who's ready to be taken out for a “test drive”? The shiny and new (and still under intensive updating) Node.js 9! An "earlier" Christmas present for all those developers who're confident in the Node.js project's steady growth and who're still blown away by its high-impact features (think unmatched scalability, think superpower, think a heavy libraries collection at your full disposal...). 

So Node.js 9 turns into Node.js's current release line, becoming available to eager developers (like us) who're dying to take it for a spin and to run one “experiment” or two (not recommended to be used in production, though!). 

… to test out all the new features and cool fixes that it ships with.

Now, do you think you can handle 2 great news instead of 1? Here it goes:

As Node.js 9 is undertaking throughout tests and in-depth experiments run by the eager community of developers, Node.js 8 becomes ready and steady for production environment use!

And after all the “teasing”, here come the clarifying info and details I owe you:

 

1. Node.js 8 Moves to LTS: Last Step to Becoming Officially Fit for Production

That's right, Node.js 8 is climbing its way up the Node.js hierarchy after a 6-month period of exhaustive testing. Its long-term support phase, when it gets actively maintained, is no longer (or “no shorter”, I'd better say) than 18 months.

By 2019 (31 of December 2019, according to the release schedule) we should be having Node.js 8 running “on its own”, without its maintainers closely monitoring it.

What does this mean? This “graduation” to an LTS release status? 

It means that Node.js 8:

  • has been officially declared as being stable enough to be moved to an intensive monitoring phase
  • has grown into a steady release; a strong signal for those companies which were being legitimately circumspect about deploying it for enterprise app development 
  • has its support team (even more) focused now on turning it into a 101% secure and stable foundation for building large-scale, scalable apps

Last call for all those new features and expected enhancements prepared for Node.js 8 to get their final “polish” and to make their “debut” in its long-awaited release!

 

2. Time to Make Your Own Move to Node.js 8: Its Most “Seductive” Features 

If you're still “stuck” with Node.js 4 or Node.js 6, time to... move on. To level up to Node.js 8.

And here are some strong reasons why you should migrate (besides, of course, its upgrade to long-term support):

  1. it comes with NPM 5.0.0
  2. its performance's been ramped up, compared to its predecessor's, Node.js 6 (just can't imagine how fast Node.js 9 will get by... 2019!)
  3. it runs on Google's V8 JavaScript Engine 6.1, the “culprit” behind the reduced memory consumption and the improved startup times witnessed in the Node.js 8-powered apps
  4. it offers full support for Async /Await (woohoo!)

     

3. Welcome Node.js 9 and Take It for a “Test Drive”!

Do expect some rough, not yet well-developed features and continuous updating.

Still, seeing the glass half full I must mention that you do have a significantly heavy load of beta features to run your tests on. 

And the great majority of fixes and enhancements brought to experimental Node.js 9 revolve around:

  • legacy API deprecation or removal
  • a gradual migration of its core base to a new error system

Why a new error system? Because more static error codes were greatly needed in order to put behind all those situations where you couldn't fix even a typo (not to mention trying to correct an entire misleading error message) in an error message without risking to cause a SemVer change.

And this is precisely the issue that this codebase migration will be addressing: associating a unique code to those error messages that Node.js 9 will generate. This way, you can easily get them fixed (if it's the case) without dreading that the system will take your fix for a breaking change.  

The user code itself will gain in robustness, since it will no longer depend on error messages.

But there's more:

  • it runs with the Google V 8 6.2 JavaScript engine
  • it ships with experimental (so still undertaking code changes) support for HTTP/2 (and N-API), which is no longer hidden behind the –expose-http2 flag
  • it comes with two-factor authentication for npm, the 5.5.1 version
  • it also ships with an async hooks module (a Node.js 8.x line experimental feature, as well); the API it provides is meant to register callbacks and to “detect” all those asynchronous resources within an app

     

4. Final Thoughts: Recommendations & Notes on Node.js Release Lifecycle 

Should you move to Node.js 8.x LTS? Definitely!

Should you use Node.js 9 in a production environment? Not recommended! It's still a “guinea pig” version, one for testing and experimenting with. As you can expect, breaking changes and high impact updates will be made throughout this trial stage. 

Just have fun “trying it on”! And fancying how all these bleeding-edge features and enhancements that we have all been eagerly awaiting for will “look on” your future Node.js 9-powered apps!

Now if you want to dig up some more in-depth info about the Node.js strategy and its overall release lifecycle, you'll find everything you might want to learn right here

Have I missed any key Node.js 8 feature? Do feel free to “scold” me in the comments below!

Also, don't hesitate to drop your first thoughts on the Node.js 9 release there, as well! Which one of its fixes/new features have you been longing for?