News

Better Debugging Highlights Microsoft's Node-ChakraCore Branch of Node.js

Microsoft continues to update its Node-ChakraCore project, which started out to expand the reach of Node.js with an open source branch and then changed direction to improve Node.js functionality such as debugging, its No. 1 pain point.

The company last week announced a preview update to Node-ChakraCore, which debuted in May 2015.

Based on Node.js 8, the new v8.21 release includes some new features along with stable platform builds (Windows, Linux and macOS) incorporating Time-Travel Debugging, a new approach that addresses the No. 1 pain point of Node.js developers as identified in a RisingStack survey.

Node.js Debugging Is Major Pain
[Click on image for larger view.] Node.js Debugging Is Major Pain (source: RisingStack).

But the Node-ChakraCore project didn't start out to improve the functionality of Node.js. The original goal was simply to broaden its reach by offering Microsoft's open source ChakraCore (based on the company's Chakra JavaScript engine) as an option to the runtime's default Chrome V8 engine. That lets Node.js developers work with Microsoft's new Windows 10 IoT Core platform for Internet of Things devices.

"From the beginning, it's been clear that in addition to growing the reach of Node.js ecosystem, there's a need to address real problems facing developers and the Node.js ecosystem through innovation, openness and community collaboration," said Arunesh Chandra, senior program manager for Chakra, in last week's post.

In addition to Time-Travel Debugging, which is supported in the Visual Studio Code editor, that collaboration and the Microsoft branch of Node.js resulted in the "next-generation Node.js API" called N-API and an experimental port of Node.js to run on iOS via Node-ChakraCore.

Now that Node-ChakraCore has full cross-platform support, Chandra said the dev team is turning to new priorities, such as improving performance and module compatibility. Chandra invited community developers to pitch in on the effort, and suggested ways to do so that don't involve writing code for people in different roles:

  • Node.js developer -- Try testing Node-ChakraCore in your project, and use Time-Travel debugging with VSCode and let us know how it goes.
  • Node.js module maintainer -- Try testing your module with Node-ChakraCore. Use these instructions to add Node-ChakraCore in your own CI to ensure ongoing compatibility. If you run into issues, please let us know at our repo or our gitter channel.
  • Native module maintainer -- Consider porting your module to N-API. This will help insulate your module from breakage due to new Node releases and will also work with Node-ChakraCore.

"We are always delighted to see the community build and extend Node-ChakraCore in novel and interesting ways," Chandra said.

About the Author

David Ramel is an editor and writer at Converge 360.

comments powered by Disqus

Featured

  • Compare New GitHub Copilot Free Plan for Visual Studio/VS Code to Paid Plans

    The free plan restricts the number of completions, chat requests and access to AI models, being suitable for occasional users and small projects.

  • Diving Deep into .NET MAUI

    Ever since someone figured out that fiddling bits results in source code, developers have sought one codebase for all types of apps on all platforms, with Microsoft's latest attempt to further that effort being .NET MAUI.

  • Copilot AI Boosts Abound in New VS Code v1.96

    Microsoft improved on its new "Copilot Edit" functionality in the latest release of Visual Studio Code, v1.96, its open-source based code editor that has become the most popular in the world according to many surveys.

  • AdaBoost Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the AdaBoost.R2 algorithm for regression problems (where the goal is to predict a single numeric value). The implementation follows the original source research paper closely, so you can use it as a guide for customization for specific scenarios.

  • Versioning and Documenting ASP.NET Core Services

    Building an API with ASP.NET Core is only half the job. If your API is going to live more than one release cycle, you're going to need to version it. If you have other people building clients for it, you're going to need to document it.

Subscribe on YouTube