JSJ 398: Node 12 with Paige Niedringhaus

JSJ 398: Node 12 with Paige Niedringhaus

October 08, 2019

Powered by RedCircle

Show Notes

Guest Paige Niedringhaus has been a developer full time for 3 years, and today she is here to talk about Node 12. One of the things she is most excited about is the ES6 support that is now available, so things that used to require React, Angular, or Vue can now be done in Node. The require function will not have to be used in Node 12. AJ is worried about some of these changes and expresses his concerns. Paige assures him that in the beginning you won’t have to switch things to imports. You may have to change file extensions/types so Node can pick up what it’s supposed to be using. They are also trying to make it compatible with CommonJS.
Node 12 also boasts an improved startup time. The panel discusses what specifically this means. They talk about the code cache and how Node caches the built in libraries that it comes prepackaged with. The V8 engine is also getting many performance enhancements. 
Paige talks about the shift from promises to async. In Node 12, async functions will actually be faster than promises. They discuss some of the difficulties they’ve had in the past with Async08, and especially callbacks. 
Another feature of Node 12 is better security. The transcripted security layer (TLS), which is how Node handles encrypted strains of communication, is upgrading to 1.3. The protocol is simpler to implement, quicker to negotiate sessions between the applications, provides increased end user privacy, and reduces request time. Overall, this means less latency for everybody. 1.3 also gets rid of the edge cases that caused TLS to be way far slower than it needed to be. 
The conversation turns to properly configuring default heap limits to prevent an ‘out of memory’ error. Configuring heap limits is something necessary when constructing an incredibly large object or array of objects. Node 12 also offers formatted diagnostic summaries, which can include information on total memory, used memory, memory limits, and environment lags. It can report on uncaught exceptions and fatal errors. Overall, Node 12 is trying to help with the debugging process. They talk about the different parsers available and how issues with key pairing in Node have been solved. 
Paige talks about using worker threads in Node 12. Worker threads are really beneficial for CPU intensive JavaScript operations. Worker threads are there for those things that eat up all of your memory, they can alleviate the load and keep your program running efficiently while doing their own operations on the sideline, and returning to the main thread once they’ve finished their job. None of the panelists have really used worker threads, so they discuss why that is and how they might use Worker Threads in Node 12. 
In addition, Node 12 is making Native module creation and support easier, as well as all the different binaries a node developer would want to support. Paige makes it a point to mention the new compiler and minimum platform standards. They are as follows:
  • GCC minimum 6
  • GLIVC minimum 2.17 on platforms other than Mac and Windows (Linux)
  • Mac users need at least 8 and Mac OS 10.10
  • If you’ve been running node 11 builds in Windows, you’re up to speed
  • Linux binaries supported are Enterprise Linux 7, Debian 8, and Ubuntu 14.04
  • If you have different requirements, go to the Node website
  • J.C. Hyatt
  • Steve Edwards
  • AJ O’Neal
With special guest: Paige Niedringhaus
Follow DevChatTV on Facebook and Twitter
J.C. Hyatt:
Steve Edwards:
  • The Farside comic coming back?
AJ O’Neal:
Paige Niedringhaus:
Follow Paige on Twitter, Medium, and Github
Special Guest: Paige Niedringhaus.