Microsoft treads on Node.js's turf with Chakra JavaScript engine

An open source Chakra is part of Microsoft's plans for infiltrating a world powered by JavaScript and its friends

Microsoft's plan to open-source its Chakra JavaScript engine has far-reaching implications. Most of all, it shows that Microsoft wants to become a player in the JavaScript ecosystem that has ambitions to be a near-universal runtime for every kind of software.

The blog post detailing Chakra's near- and far-term plans describes its evolution in parallel with JavaScript since 2008. Microsoft sees Chakra as a universal Node.js-like application engine that "powers services such as Azure DocumentDB, Cortana, and," and runs "Universal Windows applications across all form factors where Windows 10 is supported."

The Node.js connection couldn't be more explicit since Node.js can run with Chakra under Windows 10 by using patches Microsoft submitted to the Node project.

chakra componentization Microsoft

ChakraCore, the open source heart of the Chakra JavaScript engine, is divested from any dependencies on Windows and can be ported to other platforms. Microsoft wants Chakra to be used in a broad variety of scenarios, including embedded systems.

Chakra's open source incarnation, ChakraCore, is a version of the Chakra engine that's been shorn of its dependencies on the Windows platform. For example, the diagnostics APIs in Chakra, which use COM, will be replaced with a new set that is platform agnostic and could be standardized or made interoperable across different implementations.

ChakraCore will then be ported to non-Windows platforms, thus becoming a part of JavaScript's "write once, run anywhere" world. With asm.js, for example, C/C++ applications can be ported to JavaScript and run at remarkably high speeds. With WebAssembly, it's theoretically possible to take any language, compile it to a portable bytecode, and run it in the browser -- or, for that matter, any environment.

These strategies echo Microsoft's earlier ambitions to create universal platforms. Windows was, and still is, meant to run in a plurality of environments; .Net was and is intended to provide a way to write cross-platform applications. But here Microsoft is only one player among many working on a common platform, rather than one player enforcing a common platform for many.

Copyright © 2015 IDG Communications, Inc.