JSJ 398: Node 12 with Paige Niedringhaus
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.
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
- Sentry use the code “devchat” for 2 months free on Sentry’s small plan
- Sustain Our Software
- Event Stream
- Papa Parse
- Optimizing Web Performance TLS 1.3
- Overlocking SSL
- Generate Keypair
- AWS Amplify framework
- 12 Rules for Life: An Antidote to Chaos by Jordan Petersen
- React and Gatsby workshops
- The Farside comic coming back?
- DeLonghi Magnifica XS Automatic Espresso Machine, Cappuccino Maker
- CONNECT.TECH Conference
- Follow Paige on Twitter, Medium, and Github
What are you most excited about in Node 12?
EcmaScript support has been greatly improved, so now things that previously required React, Vue, and Angular can be done in Node.
What are some other features of Node 12?
New features include better security, formatted diagnostic summaries, increased help with the debugging process, improved keypairing, and worker threads.
What are worker threads?
What are the new compiler and minimum platform standards?
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.