nav search
Data Center Software Security Transformation DevOps Business Personal Tech Science Emergent Tech Bootnotes BOFH

Ommm... devs, align your Chakra, whispers Microsoft, you don't need Google's V8...

Relax, sit up straight, run your Node.js on our engine

By Thomas Claburn, 29 Nov 2016

Microsoft has released an early version of Node-ChakraCore for macOS, following a similar release for Linux at Node Summit in July.

Why is this important? Well, Node-ChakraCore is Microsoft's open-source glue that plugs Node.js into ChakraCore, the MIT-licensed JavaScript engine within its Edge web browser.

It's all part of Microsoft's plan to remain relevant to developers, particularly those using Apple and Linux, by providing a means to run their Node.js applications on Chakra. That'll hopefully ward programmers away from tying their software to a rival's engine – like Google's V8 – or, even better for Microsoft, encourage developers to pick ChakraCore for their embedded devices.

Node.js, which allows developers to use JavaScript to create both server and client applications, has seen significant growth recently and Microsoft, among others, is concerned that the platform depends too much on Google's V8 JavaScript engine.

Last year, to help developers use Node.js on devices running either Classic Windows or Universal apps under Windows 10, Microsoft created a wrapper to connect the JSRT hosting APIs offered by Chakra, Microsoft's JavaScript engine, with the V8 hosting APIs offered by Node.js.

The Windows giant said at the time that it planned to work with the Node Foundation and community to develop hosting APIs for Node.js that work with any JavaScript engine.

There are already other JS virtual machine options beyond Google's V8, like Nodyn, a Node.js compatible framework that relies on the Java Virtual Machine (JVM) and the DynJS Javascript runtime; and JerryScript, a small JavaScript engine for devices with limited resources like microcontrollers.

Microsoft, by making Node.js work with Chakra and its Edge browser, can ensure that Node applications run efficiently on the whole variety of Windows devices, including desktop PCs, tablets, smartphones, XBox, HoloLens, and IoT devices. And its experimental Node-ChakraCore support for macOS and Linux allows developers working in those operating systems to build Node.js apps with Microsoft technology.

A screenshot of Microsoft's Node-ChakraCore on macOS

Microsoft plans to provide an update on its Node-ChakraCore project in a presentation at Node Interactive North America 2016 in Austin, Texas, on Tuesday. At the event, the company intends to demonstrate progress made on the Node.JS API, said Arunesh Chandra, senior program manager for Chakra, in a blog post.

The Node.JS API (NAPI) is a community-driven project that aims to provide application binary interface (ABI) compatibility to ensure that various Node versions work with different Node VMs.

"NAPI is a stepping stone towards VM-Neutrality," said Chandra. "After NAPI is officially available for native modules, it can be used inside Node core to achieve VM Neutrality and enable Node to seamlessly support multiple JavaScript engines."

Chandra also said Microsoft is making Time-Travel debugging, a feature previewed earlier this year, available in beta in VS Code on Windows. "This feature allows developers to capture trace of a running Node process, and then visualize the code execution inside of VS Code by stepping back in time," he said.

At this particular point in history, stepping back in time has a certain appeal. ®

The Register - Independent news and views for the tech community. Part of Situation Publishing